2017-02-08 4 views
0
print("Hi. Welcome on Guess The Number!!") 
from random import randint 
randomnumber = randint(1,100) 
print("Guess the number!!") 
usernumber = int(input("Which number am I thinking about?")) 
try = 0 
while usernumber != randomnumber: 
    if usernumber < randomnumber: 
     print("Lower...") 
     print() 
     try += 1 
     usernumber = int(input("Which number am I thinking about")) 
    elif usernumber < randomnumber: 
     print("Higher") 
     print() 
     try += 1 
     usernumber = int(input("which numberam I thinking about?")) 
print("Finally!!!") 
if try <= 10: 
    print("Well done!!") 
elif try > 10: 
    print("U lost") 
print() 
print("The End!") 

これは、乱数よりも高い入力番号を入力すると無限ループになります。無限ループのヘルプが必要

どうすればこの問題を解決できますか?

+1

に変更しました。あなたの 'elif'比較をチェックし、' if'と比較してください。 – Matthias

+0

oops。ありがとう! – Fillow

+2

'try'はキーワードであり、変数名として使用しないでください。 – shuttle87

答えて

0

コードでは、ifelseの両方がusernumber < randomnumberにのみ対応しています。これは、if-elseブランチをコーディングしていないため、このようなケースを処理する無限ループに終わるのはこのためです。

1

elifの文は、ifと同じです。どちらのエラーがスローされます変数名としてtryを使用しても

elif usernumber > randomnumber: 

usernumber < randomnumber: 

変更、それをチェックします。代わりに別の名前を使用してください。私はtryy

print("Hi. Welcome on Guess The Number!!") 
from random import randint 
randomnumber = randint(1,100) 
print("Guess the number!!") 
usernumber = int(input("Which number am I thinking about?")) 
tryy = 0 
while usernumber != randomnumber: 
    if usernumber < randomnumber: 
     print("Lower...") 
     print() 
     tryy += 1 
     usernumber = int(input("Which number am I thinking about")) 
    elif usernumber > randomnumber: 
     print("Higher") 
     print() 
     tryy += 1 
     usernumber = int(input("which numberam I thinking about?")) 
print("Finally!!!") 
if tryy <= 10: 
    print("Well done!!") 
elif tryy > 10: 
    print("U lost") 
print() 
print("The End!")