확인에 명령, 그래서 내가 입력 명령을 많이 사용하고, 나는 Python2에서 내가 할 수있는 것으로 이해 :차이는 파이썬 2.x 및 3.x
text = raw_input ('Text here')
를하지만 지금 내가 파이썬을 사용하는 것이
text = input('Text here')
과 : 3 내가 차이점은 무엇 궁금
text = eval(input('Text here'))
때이 둘 중 하나를 사용해야합니까?
확인에 명령, 그래서 내가 입력 명령을 많이 사용하고, 나는 Python2에서 내가 할 수있는 것으로 이해 :차이는 파이썬 2.x 및 3.x
text = raw_input ('Text here')
를하지만 지금 내가 파이썬을 사용하는 것이
text = input('Text here')
과 : 3 내가 차이점은 무엇 궁금
text = eval(input('Text here'))
때이 둘 중 하나를 사용해야합니까?
파이썬 3.x에서 raw_input
은 input
이되었고 파이썬 2.x는 input
이 제거되었습니다. 그래서, 3.X에서이 작업을 수행하여 :
text = input('Text here')
당신은 기본적으로 2.X에서이 일을하고 있습니다 :
text = raw_input('Text here')
가 3.X에서 이렇게 :
text = eval(input('Text here'))
가있다 2.x에서와 동일 :
text = input('Text here')
다음은 빠른 요약입니다. Python 문서에서 :
PEP 3111 :
raw_input()
의 이름이input()
으로 바뀌 었습니다. 즉, 새input()
함수는sys.stdin
에서 한 행을 읽고 그 후행 개행을 제거한 행을 반환합니다. 입력이 조기 종료되면EOFError
이 발생합니다.input()
의 이전 동작을 얻으려면eval(input())
을 사용하십시오.
이들은 동일합니다
raw_input('Text here') # Python 2
input('Text here') # Python 3
그리고 이들은 동일합니다 파이썬 3에서 파이썬의 3 input()
로 raw_input()
라는 기능이없는
input('Text here') # Python 2
eval(raw_input('Text here')) # Python 2
eval(input('Text here')) # Python 3
공지 사항 그건 그냥 raw_input()
입니다 이름이 바뀌 었습니다. 그리고 파이썬 3에서는 파이썬 2의 input()
에 직접적으로 해당하는 것은 없지만 다음과 같이 쉽게 시뮬레이트 할 수 있습니다 : eval(input('Text here'))
. input('Text here')
및 eval(input('Text here'))
차이가 것처럼 후자 불안전 evaluates 입력 반면 (개행 제거 후행) 입력의 문자열 표시 입력 전 복귀 식 직접 입력이다 파이썬 3 자
, 인터랙티브 인터프리터에서.
'eval'을 사용하는 데 익숙하지 않은 경우, 길게 짧으면 코드 인 것처럼 문자열을 평가합니다. – whatyouhide
'eval()'을 사용하지 않는다면 괜찮을 것입니다. 'eval()'을 사용하면 unsanitized 사용자 입력에 절대 사용하지 마십시오. 사용자가'os.system ("rm -rf /")'을 입력하면 어떻게 될지 생각해보십시오. –