2012-02-16 5 views
1

나는 이것이 멍청한 질문이라는 것을 잘 알고 있지만 해결책을 찾지 못하는 것 같아서, 나는 프로그래밍에 익숙하지 않지만 배우려고 열심이다. 난 파이썬에서 처음으로 구글 clases를 통해 갈거야 그리고 이것은 내가 얻을 오류입니다.이름이 정의되지 않은 오류

def both_ends(s): 
    print s[0:2], s[3:5] 
    return 

x = input('...: ') 
both_ends(x) 

[email protected]:~/Desktop/p2$ python test2.py 
...: haloj 
Traceback (most recent call last): 
    File "test2.py", line 10, in <module> 
    x = input('...: ') 
    File "<string>", line 1, in <module> 
NameError: name 'haloj' is not defined 

문제가 무엇인지 설명하십시오.

답변

5

파이썬 2에서 input()은 즉시 실행되어야하는 문자열을 취합니다. 주어진 입력을 문자열 (의도)로 저장하려면 raw_input()을 사용하십시오.

+0

감사합니다. 내 문제가 해결되어 도움이되었습니다. – Sergei

2

raw_input 대신 input 시도 감사드립니다.

확장하려면 파이썬 3.x를 사용한다고 가정하고 아마도 파이썬 2.x를 사용하고있는 튜토리얼을 읽고있을 것입니다. Python 2.x에서 input은 실제로 얻은 텍스트를 평가합니다. 이는 haloj이 변수 이름이라고 생각한다는 것을 의미합니다. 그러므로 NameError. Python 3.x에서 input은 단순히 텍스트를 문자열로 반환합니다.

다른 옵션은 haloj 대신 'haloj'을 입력하는 것입니다.

0

이 목적으로 input() 대신 raw_input()을 사용해야합니다. input()을 사용하면 python은 실제로 eval(raw_input())을 수행하고 있습니다. 따라서 입력 한 내용에 대해 eval을 호출하려고합니다. 'haloj'를 타이핑하면, 파이썬은 haloj이라는 변수를 찾았는데 물론 이것은 존재하지 않습니다.