[英]Proper condition loop
我應該如何指定我的if-else-elif語句,以免它們在第一個if-子句之后完成條件檢查?
import random
x = random.randint(1, 100)
correct_answer = False
guess_count = 0
answer = input("Try to guess a number in range of 1 to 100... ")
while guess_count < 6 and correct_answer == False:
if answer != x:
answer = input("Try again...")
guess_count = guess_count + 1
elif answer > x:
print("Try lower number")
guess_count = guess_count + 1
elif answer < x:
print("Try higher number")
guess_count = guess_count + 1
elif answer == x:
print("You won!")
correct_answer = True
elif guess_count > 6:
print("You ran out of chances, sorry")
break
您可以通過更改條件的順序來簡化此操作,以便僅在處理完所有退出條件(即贏或輸)后才要求輸入另一個數字:
import random
x = random.randint(1, 100)
correct_answer = False
guess_count = 0
answer = input("Try to guess a number in range of 1 to 100... ")
while True:
guess_count = guess_count + 1
answer = int(answer)
if answer == x:
print("You won!")
correct_answer == True
break
if guess_count > 6:
print("You ran out of chances, sorry")
break
if answer > x:
answer = input("Try a lower number:")
else:
answer = input("Try a higher number:")
您應該用if
語句替換elif
語句,如下所示:
import random
x = random.randint(1, 100)
correct_answer = False
guess_count = 0
answer = int(input("Try to guess a number in range of 1 to 100... "))
while guess_count < 6 and correct_answer == False:
if answer != x:
answer = int(input("Try again..."))
guess_count = guess_count + 1
if answer > x:
print("Try lower number")
guess_count = guess_count + 1
if answer < x:
print("Try higher number")
guess_count = guess_count + 1
if answer == x:
print("You won!")
correct_answer = True
if guess_count > 6:
print("You ran out of chances, sorry")
break
我相信這是您真正想要的。 我刪除了重復的代碼並修改了@fozoro代碼,以修復過程中的錯誤
import random
x = random.randint(1, 100)
correct_answer = False
answer = int(input("Try to guess a number in range of 1 to 100...: "))
guess_count = 1
while guess_count < 6 and correct_answer == False:
guess_count = guess_count + 1
if answer != x:
answer = int(input("Try again...: "))
if answer > x:
print("Try lower number")
if answer < x:
print("Try higher number")
if answer == x:
print("You won!")
correct_answer = True
if guess_count >= 6:
print("You ran out of chances, sorry")
完整的工作代碼:
import random
x = random.randint(1, 100)
correct_answer = False
guess_count = 0
answer = int(input("Try to guess a number in range of 1 to 100... "))
while guess_count < 6 and correct_answer == False:
if answer != x and answer > x:
answer = int(input("Try again... The number should be lower "))
guess_count = guess_count + 1
if answer != x and answer < x:
answer = int(input("Try again... The number should be higher "))
guess_count = guess_count + 1
if answer == x:
print("You won!")
correct_answer = True
if guess_count > 5:
print("You ran out of chances, sorry")
break
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.