파이썬 3 raw_input()
과 차이점은 무엇입니까 input()
?
답변
차이점은 raw_input()
파이썬 3.x에는 존재 input()
하지 않는다는 것입니다. 사실, 이전은 raw_input()
이름이 변경되었습니다 input()
, 그리고 이전은 input()
사라지고 있지만, 쉽게 사용하여 시뮬레이션 할 수 있습니다 eval(input())
. ( eval()
이것은 악한 것을 기억하십시오 . 가능하다면 입력을보다 안전하게 분석하는 방법을 사용하십시오.)
답변
Python 2 에서 raw_input()
문자열을 반환 input()
하고 입력을 Python 표현식으로 실행하려고합니다.
문자열을 얻는 것이 거의 항상 원하는 것이기 때문에 Python 3은 input()
. 스벤이 말했듯이 오래된 행동을 원한다면 eval(input())
효과가 있습니다.
답변
파이썬 2 :
-
raw_input()
사용자가 입력 한 내용을 그대로 받아 문자열로 다시 전달합니다. -
input()
먼저raw_input()
를 수행 한 다음 수행합니다eval()
.
가장 큰 차이점은 input()
구문 적으로 올바른 파이썬 문장 을 기대 한다는 것 raw_input()
입니다.
파이썬 3 :
raw_input()
로 이름이 변경되었습니다input()
으므로 이제input()
정확한 문자열을 반환합니다.- 낡은
input()
것이 제거되었습니다.
old를 사용하려면 input()
사용자 입력을 python 문으로 평가해야하므로을 사용하여 수동으로 입력해야합니다 eval(input())
.
답변
Python 3에는 raw_input()
Sven에서 이미 언급 한 것이 없습니다.
Python 2에서 input()
함수는 입력을 평가합니다.
예:
name = input("what is your name ?")
what is your name ?harsha
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
name = input("what is your name ?")
File "<string>", line 1, in <module>
NameError: name 'harsha' is not defined
위의 예제에서 Python 2.x는 harsha를 문자열이 아닌 변수로 평가하려고합니다. 이를 피하기 위해 “harsha”와 같이 입력에 큰 따옴표를 사용할 수 있습니다.
>>> name = input("what is your name?")
what is your name?"harsha"
>>> print(name)
harsha
raw_input ()
raw_input () 함수는 평가하지 않으며 입력 한 내용 만 읽습니다.
예:
name = raw_input("what is your name ?")
what is your name ?harsha
>>> name
'harsha'
예:
name = eval(raw_input("what is your name?"))
what is your name?harsha
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
name = eval(raw_input("what is your name?"))
File "<string>", line 1, in <module>
NameError: name 'harsha' is not defined
위의 예에서 방금 eval
함수를 사용하여 사용자 입력을 평가하려고했습니다 .
답변
python 2 사용자를 위해 모든 사람이 제공 한 설명에 조금 더 자세히 설명하고 싶습니다 . raw_input()
지금까지 사용자가 입력 한 데이터를 문자열로 평가한다는 것을 알고 있습니다. 이것은 파이썬이 입력 된 데이터를 다시 이해하려고 시도하지 않음을 의미합니다. 고려할 것은 입력 된 데이터가 실제 문자열인지 또는 int인지에 관계없이 문자열이된다는 것입니다.
반면 input()
에 사용자가 입력 한 데이터를 이해하려고합니다. 따라서 입력 helloworld
은 오류를 ‘ helloworld is undefined
‘ 로 표시합니다 .
결론적으로 파이썬 2의 경우 문자열도 입력하려면 ‘ helloworld
‘ 처럼 입력해야합니다. ‘ ‘는 문자열을 사용하기 위해 파이썬에서 사용되는 일반적인 구조입니다.
답변
코드가 python2 및 python3으로 실행 중인지 확인하려면 스크립트에서 함수 입력 ()을 사용하고이를 스크립트 시작에 추가하십시오.
from sys import version_info
if version_info.major == 3:
pass
elif version_info.major == 2:
try:
input = raw_input
except NameError:
pass
else:
print ("Unknown python version - input function not safe")