작성
·
165
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 = ... 와 같은 코드가 있다면 삭제하시면 됩니다.
특히 처음 입문하시면, 자신이 어떤 코드를 작성했는지도 모르는 상황이 많거든요. 그럴 때에는 제공해드린 자료코드 노트북을 그대로 실행만 우선 해보시면서, 각 코드가 어떻게 동작하는지를 영상과 함께 들어보시는 방식으로 강의를 진행해보시는 것도 훨씬 효과가 좋더라고요.
감사합니다.
아 이해했습니다. list함수의 경우는 "list()"가 하나의 함수라고 생각하면 되는거죠? 안에 인자들을 넣으려면 "list['a','b'......]"를 써야하는거고요
"print" 문제는 아마도 제가 강의 내내 계속 같은 노트를 쓰고 있고 일부 계산이 잚못된 함수가 있는 듯 해서(print를 정의한 것은 찾아봤는데 안보이더라고요 ^^;;;) 계산 중단하고 다시 시작하니까 잘되네요
답변 감사합니다. 제가 프로그램머 되는 그날까지 ^^;;