web-dev-qa-db-ja.com

Python 3 throwing NameError:name ...は定義されていません

文字列変数testがあり、Python 2.xこれは正常に機能します。

test = raw_input("enter the test") 
print test

しかし、Python 3.xでは、私は:

test = input("enter the test") 
print test

入力文字列sdasを使用すると、エラーメッセージが表示されます

トレースバック(最後の最後の呼び出し):

ファイル「/home/ananiev/PycharmProjects/PigLatin/main.py」、

5行目、test = input( "enter the test")

NameErrorのファイル ""、1行目:名前 'sdas'は定義されていません

11
DennisAnaniev

Python 3コードをPython 2インタープリターで実行しています。そうでない場合は、printステートメントがスローされます SyntaxError 入力のプロンプトが表示される前。

結果は、Python 2の input を使用していることです。これは、入力をeval(おそらくsdas)、無効なPythonであることが判明し、死にます。

14
Cairnarvon

必要なコードは次のとおりです。

test = input("enter the test")
print(test)

それ以外の場合、構文エラーのため、まったく実行されません。 print関数には、python 3.の括弧が必要です。ただし、エラーを再現することはできません。

6
Noctua
temperature = input("What's the current temperature in your city? (please use the format ??C or ???F) >>> ")

### warning... the result from input will <str> on Python 3.x only
### in the case of Python 2.x, the result from input is the variable type <int>
### for the <str> type as the result for Python 2.x it's neccessary to use the another: raw_input()

temp_int = int(temperature[:-1])     # 25 <int> (as example)
temp_str = temperature[-1:]          # "C" <str> (as example)

if temp_str.lower() == 'c':
    print("Your temperature in Fahrenheit is: {}".format(  (9/5 * temp_int) + 32      )  )
Elif temp_str.lower() == 'f':
    print("Your temperature in Celsius is: {}".format(     ((5/9) * (temp_int - 32))  )  )
0
s3n0

sdasは変数として読み取られています。文字列を入力するには、「」が必要です

0
none

Printの構文エラーを取り除けば、複数のシナリオで入力を使用する方法は次のとおりです。

python 2.xを使用している場合:

then for evaluated input use "input"
example: number = input("enter a number")

and for string use "raw_input"
example: name = raw_input("enter your name")

python 3.xを使用する場合:

then for evaluated result use "eval" and "input"
example: number = eval(input("enter a number"))

for string use "input"
example: name = input("enter your name")
0
Mayank Jain

同じエラーが発生しました。このコマンドで「python filename.py」と入力した端末では、python3が記述されているため、python2はpython3コードを実行しようとしました。ターミナルで「python3 filename.py」と入力すると、正しく実行されます。これがあなたにも役立つことを願っています。

0
Kevin Wright

Ubuntuのようなオペレーティングシステムでは、pythonがプリインストールされています。デフォルトのバージョンはpython 2.7です。端末で以下のコマンドを入力してバージョンを確認できます。

python -V

インストールしたがデフォルトバージョンを設定しなかった場合は、

python 2.7

ターミナル内。 Ubuntuでデフォルトのpythonバージョンを設定する方法を説明します。

簡単で安全な方法は、エイリアスを使用することです。これを〜/ .bashrcまたは〜/ .bash_aliasesファイルに配置します:

alias python=python3

ファイルに上記を追加した後、以下のコマンドを実行します。

source ~/.bash_aliasesまたはsource ~/.bashrc

python -Vを使用して、もう一度pythonバージョンを確認してください。

if pythonバージョン3.x.xの場合、エラーはprintを括弧付きで使用するような構文にあります。

test = input("enter the test")
print(test)
0
Menuka Ishan