2017-02-10 89 views
0

我只是想知道是否有辦法限制用戶在while循環中輸入內容的次數。這僅僅是一場1-100場比賽的猜測。我找到了變量= False。有沒有辦法限制while循環或輸入循環的數量?

while not found: 
    user_guess = int(input("Your guess: ")) 
    if user_guess == random_number: 
     print("you got it!") 
     found = True 
    elif user_guess > random_number: 
     print("Guess lower") 
    else: 
     print("guess higher") 

我想看看是否可以通過限制用戶可以猜測輸入的數量來讓此代碼看起來更像遊戲。我有一些想法,我無法把頭圍住它。我是否已經爲輸入設置了一個變量值來設置它可以運行的次數?林新編程,所以我掙扎了一下。

+0

你需要一個計數器;你在循環中加1;或者使用'for'循環來代替'while'循環'range''' –

+0

你可以保留一個「guesses」的計數器,例如, '猜測= 0'。然後,在你的while_loop結束時,「猜測+ = 1」。例如,您的條件可以是「猜測<3」,將其限制爲3次猜測。然後,當'user_guess == random_number'時,不要跟蹤'found',只要'break'。或者使用for循環,並相應地分解。 –

回答

0
count = 0 
max_guesses_allowed = pick your max here 

while not found or count < max_guesses_allowed: 
    user_guess = int(input("Your guess: ")) 
    if user_guess == random_number: 
     print("you got it!") 
     found = True 
    elif user_guess > random_number: 
     count += 1 
     print("Guess lower") 

    else: 
     count += 1 
     print("guess higher") 
0

標準的方法是計算循環次數,如果超過最大值則退出。

max_allowed = 10 
attempt = 0 

while not found: 
    attempt += 1 
    user_guess = int(input("Your guess: ")) 
    if user_guess == random_number: 
     print("you got it!") 
     found = True 
    elif attempt == max_allowed: 
     print("You've reached the maximum number of guesses.") 
     break 
    elif user_guess > random_number: 
     print("Guess lower") 
    else: 
     print("guess higher") 
+0

如果你猜對了,上一次它會告訴你,你已經達到了最大數量的猜測......目前還不清楚這是否是預期的行爲。 – TemporalWolf

+0

如果他們被允許10次嘗試,並且他們在第10次嘗試時就會猜出它,它會告訴他們他們發現了它。這是我期望的行爲。 – Batman

+0

你是對的 - 我誤解了。 – TemporalWolf