私が入るとき
username = str(input("Username:"))
password = str(input("Password:"))
プログラムを実行した後、入力に自分の名前を入力してEnterキーを押します
_username = sarang
_
エラーが発生します
_NameError: name 'sarang' is not defined
_
私が試してみました
username = '"{}"'.format(input("Username:"))
そして
password = '"{}"'.format(input("Password:"))
しかし、私は同じエラーを受け取ることになります。
入力を文字列に変換してエラーを修正するにはどうすればよいですか?
raw_input()
in Python 2.xおよびinput()
in Python 3.xを使用して、文字列を取得します。
2つの選択肢があります。Python 3.xを介してコードを実行するか、コード内でinput()
をraw_input()
に変更します。
Python 2.x input()
は、ユーザー入力をデータではなくコードとして評価します。 sarang
という既存のコードで変数を探しますが、見つかりません。したがって、NameError
がスローされます。
補足:これをコードに追加して、代わりにinput_func()
を呼び出すことができます。正しい入力方法が自動的に選択されるため、コードはPython 2.xおよび3.x:で同じように機能します。
input_func = None
try:
input_func = raw_input
except NameError:
input_func = input
# test it
username = input_func("Username:")
print(username)
詳細については、 この質問 を確認してください。
Python 2、raw_input()
は文字列を返し、input()
は入力をPython expression 。
文字列を取得することはほとんどの場合あなたが望むものだったので、Python 3はinput()
でそれを行います。
Input(Prompt)を使用するだけでなく、raw_input(Prompt)を明示的に使用する必要があります。現在Python 2.xを使用しているため、ユーザーからの入力を受け取るためにこのタイプのフォーマットをサポートしています。