2017-09-04 24 views
1

この質問はささいなことかもしれませんが、私はPythonを初めて使用しています。質問は以下の簡単な例で説明するのが最善です。私は次のスクリプトをデバッグするためにPDBを使用しています(これは、Python 3である):pythonデバッガからの入力方法pdb

astring = input("input here: ") 

ステップは、上記の行で、私は次のプロンプトと入力し、 "ABC"

input here: abc 

が、どのようなI入力を取得するときキーボードから、私はエラーが起こる

NameError: "name 'abc' is not defined" 
> /home/wang/tmp/test.py(4)<module>() 
-> astring = input("input here: ") 

デバッグ時にどのように入力できますか?どうもありがとう!あなたは、Python 2. raw_inputではなくinput

答えて

0

入力された「ABC」の評価と考えているようです。しかし、あなたのプログラムは入力されていますが( "ここに入力する")、あなたが与える例は "ここに入力する"であり、pdbからの出力には "input a line:"と書いてあります。これらの違い。 abcの代わりにn(次のコード行)を入力して、何が起こるかを確認してください。

+0

ありがとうございます。実際に私はPython 3を使用していました。質問を編集します。 –

0

であなたの目的のために間違った機能を使用している

+0

ありがとうございました。私はスクリプトを更新した後、古いエラーを使用しました。問題は修正されました。 nを入力すると、 "abc"を "n"に置き換えて同じエラーを返します。 –

+0

@WangXiaojieいいえ...あなたはPython 3を使っていません(他にも 'input'関数を上書きしています)。 python2.7 -c "x = input( 'input here:')" 'が' NameError:.. 'につながっている間、 'python3 -c" x = input(' input here: ') 」。おそらく、あなたは 'input sys; print(sys.version) 'を実行して、実行していることを確認します。 – donkopotamus

+0

@donkopotamus:そうです!どうもありがとうございます!私は "pdb test.py"を使ってpdbを試していました。 "test.py"には "#!/ usr/bin/python3"があります。私はそれがpython3を使用していたことを当然受け取りました! –

関連する問題