web-dev-qa-db-ja.com

python 2.7でユーザー入力を文字列に変換する方法

私が入るとき

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:"))

しかし、私は同じエラーを受け取ることになります。

入力を文字列に変換してエラーを修正するにはどうすればよいですか?

3
sarang.g

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)

詳細については、 この質問 を確認してください。

7
jDo

Python 2、raw_input()は文字列を返し、input()は入力をPython expression 。

文字列を取得することはほとんどの場合あなたが望むものだったので、Python 3はinput()でそれを行います。

0
Akash Kandpal

Input(Prompt)を使用するだけでなく、raw_input(Prompt)を明示的に使用する必要があります。現在Python 2.xを使用しているため、ユーザーからの入力を受け取るためにこのタイプのフォーマットをサポートしています。

0
Rochak Bhalla