2012-10-24 2 views
0

나는 온라인 파이썬 튜토리얼 북을 here에서 읽고있다. 코드는 다음과 같습니다. 코드를 실행할 때 단어를 입력 할 수 있지만 아래에 오류가 표시됩니다. 코드에 어떤 문제가 있습니까?파이썬 튜토리얼의 Traceback NameError

관련 노트에서, 파이썬을 배우기에 더 좋은 리소스가 있다면 알려주십시오. 나는 온라인이고 자주 업데이트되는 것을 찾고있다 (예 : railstutorial.org). 내가 사용하고있는 리소스는이 책의 초기에도 많은 오류가 있습니다. 감사.

Enter something : programmig is fun 
Traceback (most recent call last): 
    File "break.py", line 5, in <module> 
    s = input('Enter something : ') 
    File "<string>", line 1, in <module> 
NameError: name 'programmig' is not defined 

#!/usr/bin/python 
# Filename: break.py 

while True: 
    s = input('Enter something : ') 
    if s == 'quit': 
     break 
    print('Length of the string is', len(s)) 
print('Done') 

답변

2

이것은 파이썬 3 코드입니다. 파이썬 2로 실행하고있는 것 같습니다.

사용중인 파이썬 버전을 확인하려면 python --version을 실행하십시오.

+0

필자는 Python 2.7.2를 사용했다. 왜냐하면이 책은 Python 2.7.2를 사용하고 있다고 명시 적으로 말했기 때문에 슬프다. – okysabeni

+0

글쎄, 실제로 그는 python 3을 사용하고 있다고 말했고 이제는 python 2와 3의 코드가 혼합되어 있습니다. lol – okysabeni

+0

Odd. 이것은'print'는 함수이고'input'은 오래된'raw_input'처럼 동작 할 것으로 예상되기 때문에 3이라고 말할 수 있습니다. 또한, 파이썬 3에서와 마찬가지로 실행됩니다. –

1

input() 문자열이 없기 때문에 programmig이 변수라고 생각합니다. 따옴표 안에 원하는 입력을 입력하여이를 해결할 수 있습니다.
그러나 더 좋은 방법은 문자열을 반환하는 raw_input을 사용하는 것입니다.
그래서 중 하나를하지 않는 것이 좋습니다, Enter something : 'programmig is fun' 수행 또는 수행 s = raw_input('Enter something : ')은 혼란의 원인은 당신하면서,이 책은 또한 다른 print 다른 input을 가지고 파이썬 3를 위해 아마, 그리고 것입니다 방법

을 권장 파이썬 2.x를 사용하고 있습니다.

+0

이것은 파이썬 2에 대해서는 사실입니다 만,'print' 함수로 판단하면 파이썬 3입니다. –

+0

@MatthewAdams, 아마도 그는 파이썬 2.x를 실행하고있을 것입니다. 파이썬 3 혀. – BrtH

+0

그게 무슨 일 이겠지. –

관련 문제