2017-09-14 17 views
-1
# -*- coding: utf-8 -*- 
question = raw_input("Python or Ruby?") 
while question != "Python": 
    print "Nope!" 

これは単純なものです。私は素人ですし、基本を学んでいます。私はこのループで何かをしようとしたが、それは、このエラーを与える:Python 2.7 Whileループが動作しない

 
$python main.py 
Python or Ruby?Traceback (most recent call last): 
    File "main.py", line 2, in 
    question = raw_input("Python or Ruby?") 
EOFError: EOF when reading a line 

私はPyCharm何も出力が起こる見しようとしたときも、ちょうど空白の出力ウィンドウが発生しました。

+2

これは素晴らしい無限ループですが、このエラーがどのように発生するのかはわかりません。 –

+0

'question'の値は** whileループ内で**変化しませんので、条件は決して満たされません - ループは無限です。 –

+2

このコードはどのように実行していますか? 「入力」にEOFを得る理由はいくつかあるようです。 [this](https://stackoverflow.com/questions/23079388/python-eof-error-raw-input)それはあなたがそれをどこで実行するかに依存するようです – roganjosh

答えて

0

ループは主に何かが同じおよび/または変更のまま際に検出するために使用されている「ながら」。コードでは、最初にユーザー入力を受け取り、それを変数として格納します。 whileループはそれを無限にチェックし、 "Python"と等しくなければ "Nope!"を出力します。これは "Nope!"を無限に印刷することを意味します。何度も何度も繰り返します。 'if'文はもっとうまくいくはずです:

if question != "Python": 
    print "Nope!" 

'if'文は無限にチェックするのではなく、一度チェックするだけです。この答えがあなたを助けたらと願っています!

2

このようなものをお探しですか?

# -*- coding: utf-8 
import sys 
question = None 
while question != "Python": 
    question = raw_input("Python or Ruby? ->") 

    if(question != "Python"): 
     print("Nope!") 
0

無限のwhileループ(以下を参照)ではなくif文を使用することをお勧めします。

question = raw_input('Python or Rub?') 
while 'Python' not in question: 
    print 'Nope!' 

答えを下位文字で比較して改善することができます。そうでなければ、答えが技術的に正しい場合でも(Pythonまたはpythonが両方とも正しい場合でも)大文字でNope!の出力が生成されます。

question = raw_input('Python or Rub?') 
if 'python' not in question.lower(): 
    print 'Nope!' 
+0

つまり、 ''Python'が質問にないならば、あなたは無限ループを持っています。 – ForceBru

0

あなたのケースでは、終了が完了しません。宣言はあなたを助けることができると宣言します。

def Question(): 
question = raw_input("Python or Ruby?") 
while question != "Python": 
    print "Nope!" 
    return Question() 
print "Correct" 
return 1 

それとも、最高のパフォーマンスがあればなステートメントrecursivlyを使用するために:

def Question(): 
question = raw_input("Python or Ruby?") 
if question == "Python": 
    print "Correct" 
    return 1 
print "nope" 
return Question() 

`

関連する問題