2014-12-20 5 views
3

아래와 같은 일부 책에서 파이썬 코드를 얻었지만 비정상적으로 실행됩니다.Python input()이 정의되지 않았습니다.

# name.py 

name = input('What is your first name? ') 
print('Hello ' + name.capitalize() + '!') 

결과는 다음과 같습니다

$ python name.py 
What is your first name? jack 
Traceback (most recent call last): 
    File "name.py", line 3, in <module> 
    name = input('What is your first name? ') 
    File "<string>", line 1, in <module> 
NameError: name 'jack' is not defined 

그것은 어떤 문제가 있습니까? 감사합니다.

+0

내 끝에서 완벽하게 달리고 있습니다. 어떤 파이썬 버전을 사용하고 있습니까? –

+0

파이썬 버전에 대해 언급하는 것을 잊어 버렸습니다. 이 책은 파이썬 2.7을 사용하는 동안 파이썬 3을 사용합니다. 이로 인해 문제가 발생할 수 있습니다. @AmitSharma –

+0

예! 그래서 당신은 문제에 직면 해 있습니다. 'raw_input()'는 Python 3.x에는 존재하지 않지만'input()'은 존재하지 않습니다. 오래된'raw_input()'이'input()'으로 이름이 변경되었다고 가정 할 수 있습니다. 그들은 둘 다 동일합니다. –

답변

4

저서는 파이썬 3 용으로 작성되었습니다. 오래된 파이썬 2 input()의 기능은 파이썬 3 input()과 다르게 작동합니다. troolee 의해 연결된 문서에서 언급 한 바와 같이, 파이썬 2 input()eval(raw_input(prompt)) 편리, 같지만, 모든 입력 문자열이 평가되기 때문에 dangerous 수있다.

파이썬 2에서 파이썬 3 코드 예제를 실행하려면 으로 input() 콜을 대체해야합니다.

파이썬 3 코드가 파이썬 2에서 작동하지 않거나 적어도 다르게 작동하게하는 다른 차이점이 있습니다. 특히, print 구형은 파이썬 3에 더 이상 존재하지 않으며 print() 함수로 대체되었습니다. 일부 Python 3 print() 함수 호출은 Python 2에서 작동하지만 일부 호출은 작동하지 않습니다.

관련 문제