2013-03-14 3 views
2

저는 파이썬을 처음 사용합니다.입력이 파이썬에서 작동하지 않습니다.

온라인 튜토리얼을 읽었으며 저자는 str = input()을 사용한 다음 문장을 입력했습니다. 그 후, 그는 str에 저장된 입력 문자열을 얻는다. 그러나, 내 파이썬 셸에서 str = input() 시도했을 때 작동하지 않습니다. 오류는 다음과 같습니다.

>>> a = input() 
test sentence 

Traceback (most recent call last): 
    File "<pyshell#5>", line 1, in <module> 
    a = input() 
    File "<string>", line 1 
    test sentence 
      ^
SyntaxError: unexpected EOF while parsing 

왜 그런지 말해 줄 수 있습니까?

답변

2

a = input() test sentence은 유효한 코드가 아닙니다.

# 문자로 의견을 쓸 수 있습니다.

편집 : 어떤 버전의 파이썬을 사용하고 있습니까? input 대신 raw_input을 시도하십시오.

파이썬 2 inputraw_input 차이

:

raw_input는 : str

input로 바꿈 저장을하여 쓴 어떤 사용자 판독은 : 사용자가 쓴대로 판독 evalutes 입력

raw_input은 파이썬 3에서 input이되었습니다.

+0

미안하지만 그건 내가 한 일이 아닙니다. 편집을 기다려주세요. – user

1

input()을 사용하고 있으므로 올바른 Python 코드가 필요합니다. test sentence이 유효한 Python이 아니기 때문에 SyntaxError이 표시됩니다. 따라서

, raw_input()를 사용해보십시오 (문자열을 반환하는) 또는 수행이 :

>>> a = input() 
'test sentence' # by entering it as a string, it is evaluable 

참고 :

4
input의 의미가있다

Py 사이에서 변경됨 thon 2와 Python 3. Python 2에서 input은 실제로 파이썬 코드로 입력 한 내용을 평가합니다. 따라서 파이썬에서 통사론이 올바르지 않은 것을 입력하면 그런 오류가 발생합니다. 또한 raw_input이 있습니다. 입력이 무엇이든 가져 와서 문자열로 반환합니다. , 평가 input (그리고 평가는 악) 정말 유용하지 않기 때문에

은 이제 input의 동작은, 파이썬 3

대부분 파이썬 3를 사용하여 튜토리얼의 저자 파이썬 2의 raw_input로 대체되었다 여기서 inputraw_input처럼 동작합니다 (Python 2에서 사용). Python 2를 사용하는 경우 대신 raw_input을 사용하십시오.

1

파이썬 2에서 raw_input(...)은 문자열로 입력 한 내용을 반환합니다. input(...)eval(raw_input(...)) (매우 위험 !!)과 동일합니다.eval은 인수를 파이썬 코드로 평가하고 결과를 반환하므로 input은 올바르게 형식화 된 파이썬 코드를 필요로합니다. 은 보안 상 위험하므로 Python 2에서 input 또는 eval을 사용해야합니다. 대신 raw_input을 사용하십시오.

파이썬 3에서 input(...)은 문자열로 입력 된 모든 것을 반환합니다.

관련 문제