input 関数を利用するスクリプトを実行しようとすると、「NameError: name '」というエラーが発生する場合があります。 ...' が定義されていません。」これは、有効な名前または変数がないために入力関数がユーザーの入力を Python 式として評価しようとして失敗した場合に発生します。
Python 2.7 、入力関数は独特の動作を実行します。ユーザーの入力を Python 式として解釈します。スクリプトが文字列を予期している場合、入力を引用符で囲む必要はありません。ただし、文字列が期待されているにもかかわらず引用符で囲まれている場合、追加の引用符が存在するためにエラーが発生します。
例:
input_variable = input("Enter your name: ") # Expecting a string without quotes print("Your name is " + input_variable) # Error: NameError
これを Python 2.7 で修正するには、次のようにします。代わりに raw_input 関数を利用してください。この関数は、ユーザーの入力を Python 式として解釈せずに単に読み取ります。Python 3.x の
input_variable = raw_input("Enter your name: ") # Expecting a string with quotes print("Your name is " + input_variable) # No error
Python 3.x では、raw_input 関数の名前が変更されました。を入力します。したがって、Python 2.7 の raw_input と同様の動作をします。つまり、ユーザーの入力を解釈せずに文字列として読み取ります。
Python での入力以来2.7 はユーザー入力を評価するため、セキュリティ上の懸念が生じます。悪意のあるユーザーが適切にサニタイズまたは検証されていないコマンドを入力すると、悪意のあるコードが実行される可能性があります。たとえば、スクリプトが OS モジュールをインポートし、ユーザーが入力として次を入力した場合:
os.remove("/etc/hosts")
これにより、/etc/hosts ファイルが削除される可能性があり、代わりに raw_input を使用する重要性が強調されます。機密性の高いユーザー入力を読み取るため。
以上がPython の「input()」関数で「NameError」が発生するのはなぜですか?それを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。