간단한 스크립트를 실행하려고 하면 사용자에게 다음 오류가 발생할 수 있습니다.
NameError: name '...' is not defined
이 오류는 사용자 입력을 Python 표현식으로 평가하는 input() 함수와 함께 Python 2.7을 사용할 때 발생합니다. 문자열 입력을 기대할 때 이 평가는 혼란을 초래할 수 있습니다.
Python 2.7은 사용자 입력에 대해 두 가지 옵션을 제공합니다.
Python 2.7에서는 다음이 true입니다.
input = eval(raw_input)
따라서 input("Enter your name: ")을 사용할 때 입력 문자열(예: "dude")은 다음과 같습니다. 변수 이름으로 평가됩니다. 스크립트에 "dude"라는 변수가 없으면 오류가 발생합니다.
input()의 평가 기능은 보안에 영향을 미칩니다. 예를 들어 os 모듈을 가져오고 사용자가 "os.remove("/etc/hosts")"를 입력하면 이 Python 표현식이 실행되어 잠재적으로 시스템에 해를 끼칠 수 있습니다.
Python 3.x에는 Python 2.7의 raw_input()을 본질적으로 모방하는 input() 함수가 하나만 있습니다. 이는 평가 측면을 제거하고 입력 프로세스를 단순화합니다.
문자열 입력을 읽을 때 Python 2.7에서 NameError를 해결하려면 입력 대신 raw_input 함수를 사용하는 것이 좋습니다. 이렇게 하면 입력이 문자열로 처리되고 Python 표현식으로 평가되지 않습니다. 추가 처리 또는 변환이 필요한 경우 문자열 입력을 처리하기 위해 적절한 기능을 사용할 수 있습니다.
위 내용은 Python 2.7에서 `input()`이 `NameError`를 일으키는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!