2013-07-02 91 views
3

此代碼:一個簡單的Python循環問題

import random 
print("\tWelcome to the guess my number program\n") 

print("im thinking of a number between 1 and 100") 
print("try to guess it in 5 attempts\n") 

randomNum = random.randint(1,101) 

tries = 0 

userNumber = int(input("please pick a number")) 

while userNumber != randomNum: 
    if userNumber > randomNum: 
     print ("lower") 
    else: 
     print("higher") 
    tries += 1 

print ("you guessed it! the number was" , randomNum) 

出於某種原因,這將產生一個無限循環。任何幫助,即時通訊仍然習慣於python。

+3

我不認爲這個問題值得一downvote。這個標題足以說明問題,儘管OP正在犯一個基本錯誤,但我們在開始時都做了同樣的事情。 – 2rs2ts

+0

我很難判斷在while循環中使用的縮進是故意還是複製+粘貼格式錯誤或只是程序錯誤。 –

+0

@Relfor如果OP實際上以這種方式編寫了他的代碼,代碼將不會運行。如果您有'IndentationError',則不能有無限循環。 :) – 2rs2ts

回答

5

您從未在while循環內更​​新過userNumberrandomNum。所以一旦滿足循環條件,它將無限地執行。

您需要的更新您的while循環:

while userNumber != randomNum: 
    if userNumber > randomNum: 
     print ("lower") 
    else: 
     print("higher") 

    tries += 1  
    userNumber = int(input("please pick a number")) 
+0

所以try和userNumber仍然在循環中?此外,我必須要求兩次userNumber才能完成此工作?我實際上用java寫了一個類似的程序,但我不記得我是如何做到的。 – user2533561

+1

是的,他們都應該只在循環內。如果你只是想給予用戶兩次機會,那麼在while循環條件中添加'tries'。 –

3

你忘了問用戶再次猜測。嘗試這個!

while userNumber != randomNum: 
    if userNumber > randomNum: 
     print("lower") 
    else: 
     print("higher") 
    tries += 1 
    userNumber = int(input("please pick a number") 
0

試試這個:

import random 
print("Welcome to the guess my number program!") 
randomnum = random.randint(1, 100) 
print("I'm thinking of a number between 1 and 100.") 
print("Try to guess it in 5 attempts.") 
tries = 0 
usernumber = 0 
while not usernumber == randomnum: 
    usernumber = int(raw_input("please pick a number.") 
    if usernumber > randomnum: 
     print("Too High") 
    if usernumber < randomnum: 
     print("Too Low") 
    tries = tries + 1 
if usernumber == randomnum: 
    print("You got the number!") 
print("It took you " + str(tries) + " attempts.")