単純なスクリプトを実行しようとすると、次のエラーが発生する可能性があります:
NameError: name '...' is not defined
このエラーは、ユーザー入力を評価する input() 関数で Python 2.7 を使用すると発生します。パイソン表現。文字列入力を予期する場合、この評価は混乱を招く可能性があります。
Python 2.7 では、ユーザー入力に次の 2 つのオプションが提供されます。
Python 2.7 では、次のことが当てはまります:
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() 関数が 1 つだけあります。これにより、評価の側面が排除され、入力プロセスが簡素化されます。
文字列入力を読み取るときに Python 2.7 で NameError を解決するには、input の代わりに raw_input 関数を使用することをお勧めします。これにより、入力が文字列として扱われ、Python 式として評価されなくなります。さらに処理または変換が必要な場合は、適切な関数を使用して文字列入力を処理できます。
以上がPython 2.7 で「input()」によって「NameError」が発生するのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。