인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

shimdong님의 프로필 이미지
shimdong

작성한 질문수

파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

문제를 풀며 가장 자연스럽게 익숙해지는 파이썬 기본: 데이터 구조 - 리스트1 이거 문제 풀다가 궁금한 점이 생겨서요~

작성

·

177

0

두가지 질문이 생겨서요

 

1번) 리스트를 만들때요 input을 받고 넣어도 좋을 것 같아서 아래 같이 코드를 짰습니다.

local2=list()

local2.append(input())

local2.append(input())

local2.append(input())

local2.append(input())

local2

-> 결과 : ['서울', '부산', '인천', '경기']

이렇게 떴고요

list 명령어를 써서 아래 같이 짜니까

lang2=list('java','c','c++')

lang.append('golang')

lang

->결과 : Cell In[63], line 1 lang2=list()'java','c','c++') ^ SyntaxError: unmatched ')'

에러가 뜨더라고요 그래서 빨간색부분을 "()" 대신에 "[]"로 바꿨더니 되더라고요

무슨 차이인가요?? 위의 입력을 받을때는 "()"로 해도 되었는데 직접리스트를 넣을때는 "[]"로 해야하는지요?

 

 

2번) 리스트 만들고 출력할때 print를 써도 된다고 해서 써봤는데 안되더라고요

local3=['서울','부산','경기']

print(local3)

->결과 : TypeError Traceback (most recent call last) Cell In[69], line 2 1 local3=['서울','부산','경기'] ----> 2 print(local3) TypeError: 'str' object is not callable

 

뭐가 문제인 걸까요????

답변 1

0

안녕하세요. 답변 도우미입니다.

두 가지 질문에 대한 답변을 드리겠습니다.

1번) Python에서 리스트를 생성하는 방법에 대한 질문입니다. list() 함수는 주로 두 가지 목적으로 사용됩니다. 첫 번째는 빈 리스트를 생성할 때, 두 번째는 다른 자료형(예: 문자열, 튜플 등)을 리스트로 변환할 때 사용됩니다. 귀하의 경우, list('java', 'c', 'c++')와 같은 형태로 사용하셨는데, 이는 잘못된 사용 방법입니다. list() 함수는 단일 인자만 받으며, 여러 개의 인자를 넣으려면 대괄호 []를 사용하여 리스트 형태로 전달해야 합니다. 예를 들어, lang2 = ['java', 'c', 'c++']와 같이 작성해야 합니다.

2번) print 함수를 사용하여 리스트를 출력할 때 발생하는 문제입니다. 제시된 오류 메시지를 보면 TypeError: 'str' object is not callable라고 나타나는데, 이는 보통 print라는 이름을 문자열 변수에 할당하고, 그 후에 print() 함수를 호출하려 할 때 발생합니다. 즉, 어딘가의 코드에서 print를 문자열로 재정의했을 가능성이 높습니다. 이를 해결하기 위해서는 주피터 노트북을 껐다 키시는 것이 가장 쉽고요. 애매하시면 컴퓨터 자체를 껐다 켜서 다시 해당 노트북 파일을 오픈하시고, print = ... 와 같은 코드가 있다면 삭제하시면 됩니다.

특히 처음 입문하시면, 자신이 어떤 코드를 작성했는지도 모르는 상황이 많거든요. 그럴 때에는 제공해드린 자료코드 노트북을 그대로 실행만 우선 해보시면서, 각 코드가 어떻게 동작하는지를 영상과 함께 들어보시는 방식으로 강의를 진행해보시는 것도 훨씬 효과가 좋더라고요.

감사합니다.

shimdong님의 프로필 이미지
shimdong
질문자

아 이해했습니다. list함수의 경우는 "list()"가 하나의 함수라고 생각하면 되는거죠? 안에 인자들을 넣으려면 "list['a','b'......]"를 써야하는거고요

"print" 문제는 아마도 제가 강의 내내 계속 같은 노트를 쓰고 있고 일부 계산이 잚못된 함수가 있는 듯 해서(print를 정의한 것은 찾아봤는데 안보이더라고요 ^^;;;) 계산 중단하고 다시 시작하니까 잘되네요

답변 감사합니다. 제가 프로그램머 되는 그날까지 ^^;;

shimdong님의 프로필 이미지
shimdong

작성한 질문수

질문하기