2016-09-02 13 views
-2

私は最終的に私の最初の言語としてのPythonを学ぶことにしたことがあります。私はIDLE3と共にpython3を使っています。シンプルなパスワードプロンプトを書くときは、問題が発生している:/ scriptは次のようになります。私はスクリプトを実行し、入力したときに シンプルなpythonのパスワードプロンプト

import sys 

password = input("Enter your password: ") 
if password != "pword" : 
    sys.exit() 
print("Password correct") 

は、今私は次のエラーを取得するパスワードとして渡す:あなたの助けみんなのために事前に

[email protected]:~/Desktop# python password1.py 
Enter your password: pword 
Traceback (most recent call last): 
File "password1.py", line 2, in <module> 
password = input("Enter your password: ") 
File "<string>", line 1, in <module> 
NameError: name 'pword' is not defined 

おかげで、それが理解です。

+0

あなたが表示されたコードは、持っている ' 'pword''(引用符、文字列に注目してください)が、エラーは(あなたが' pword'を持って提案します裸の単語、未定義の変数)。実際に引用符を使用している場合は、 '__pycache__'フォルダをクリアしてみてください。 –

+0

'input'の代わりに' raw_input'を使用します – Xiobiq

+1

あなたは実際にPython 2を使っていますか?私はここにそれを意味のよう –

答えて

1

2つのうちの1つが起こっています。どちらのPythonの2

import sys 
print(sys.version) 
# should show 3.x.y per your question, but if it's showing 2.x.y, that'd be why 

のpython3対理由Python2が重要

A)は、あなたのコピーが間違っている、そして、あなたのスクリプトが実際に

... 
if password != pword: # note the lack of quotes 
... 

またはB)あなたが使用していることを読み込むと、そのinputです組み込み関数は2つの方法で異なって動作します。 Python2では、inputは名前空間内のユーザー入力を解決しようとします。 python3は単なる文字列として入力を返しながら

# Python2 
>>> foo = "bar" 
>>> spam = input("enter something: ") 
enter something: foo 
>>> print(spam) 
bar 

# Python3 
>>> foo = "bar" 
>>> spam = input("enter something: ") 
enter something: foo 
>>> print(spam) 
foo 
+0

は「_Shouldは、私はそれに答える? いいえ、あなたはそれがduplicate._だと思うしない場合は、」 [ソース](https://meta.stackexchange.com/questions/10841/how-should-重複する質問) – Xiobiq

+0

@Polikdir right。しかし、私はこれに答えた時点で、重複していることは明らかではなかった。それはOPとのコメントの過程でしか出てこなかった。私の答えに何が問題を引き起こしているのかには2つの可能性があることに注意してください。 :) –

+0

パスワード= raw_input( "あなたのパスワードを入力:")が働いた!皆さんありがとうございました – Adam59600

関連する問題