2017-10-26 9 views
-1

こんにちはStackOverFlowのプログラマー、私はPythonを勉強するティーンエイジャーです、そして私は自分のコードの論理エラーを見つけることができません。私はあなたがそれを手伝ってもらいたい。 2つの論理エラーが発生しました。 1.回答が「はい」または「いいえ」の場合、whileコマンドを開いたままにしておきます。 選択==「yes」または「no」..whileループの論理エラーを修正する方法はありますか?

私のコーディングがここにあるとき、それは決して停止しない最初のエラーから2結論:

choice = raw_input("Do you like programming? (yes/no) : ") 
while choice != "yes" or "no": 
    choice = raw_input('Come on, answer with a "yes" or with a "no" ! : ') 
if choice == "yes": 
    print "I like you !" 
elif choice == "no": 
    print "I am sorry to hear that .. " 

は、事前にありがとうございます!

+0

'かのどちらかかどうかを確認する

while choice not in ["yes", "no"]: 

あるを試し真

と評価されているので'文の字下げは問題ありません。彼らはループの外側にあることを意図しています。 – kindall

+0

choice!= "yes" AND "no" ...ちょうど 'または' to 'と' @kindall hehe ur right ...私は第1行を読んでいませんでした:Pとにかく... –

+0

私は思いませんこれは複製です。問題は文字列テストと値に対する複数の変数でした。主に文字列テスト –

答えて

0

2行目は、Trueに評価されます。文字列は "ノー" 以下

if "any string": print(1) #will always print 1, unless the string is empty 

あなたが代わりに使用すべきことはchoiceマッチ"yes"または"no"

+1

私は評判がないのでそれを好きではありませんが、私はしばらくそれを受け入れます! –

0

これは問題である。

while choice != "yes" or "no": 

これは(choice != "yes") or ("no")としてPythonによって解釈されます。 "no"はゼロ以外の長さの文字列なので真実です。これにより、OR真が真であるため、orという表現が真になります。したがって、あなたの状態は常に真であり、ループは決して止まらない。

それは次のようになります。

while choice != "yes" and choice != "no": 

または:

while choice not in ("yes", "no"): 
+0

ありがとう、すぐに答えてください!私はそれを感謝します! –

関連する問題