如果用户已经猜到了数字,如何使程序停止询问"4-digit number",并使程序显示"You Win!"



在这里,代码总共实现了其目的,除了我无法让代码结束并打印"您赢!"在所有四个数字都被猜测之后。我们尝试使用断路语句,用" hiles"one_answers" elifs"切换" IF"以及更改变量

import random
#Gets 4 random single digits to be guesses
n1 = random.randint (0,9)
n2 = random.randint (0,9)
n3 = random.randint (0,9)
n4 = random.randint (0,9)
wrong_guesses = 0
print ("I'm thinking of a 4-digit code. Guess what it is!")
print ("X = wrong guess, O = right guess")
guess = int(input("Enter your 4-number digit here:"))
#Guesses the first (leftmost) number
if guess // 1000 % 10 != n1:
    wrong_guesses +=1
    print ('X')
else:
    wrong_guesses +=0   
    print ('O')
#Guesses the second (second from the left) number
if guess // 100 % 10 != n2:
    wrong_guesses +=1
    print ('X')
else:
    wrong_guesses +=0 
    print ('O')
#Guesses the third (second from right) number
if guess // 10 % 10 != n3:
    wrong_guesses +=1
    print ('X')
else:
    wrong_guesses +=0 
    print ('O')
#Guesses the last (rightmost) number
if guess // 1 % 10 != n4:
    wrong_guesses +=1
    print ('X')
else:
    wrong_guesses +=0 
    print ('O')
if wrong_guesses == 0:
    print ("You win!")
while wrong_guesses != 0:
    guess = int(input("Enter your 4-digit code here:"))
   #Display O if number is correct, X if otherwise
if guess // 1000 % 10 != n1:
    wrong_guesses +=1
    print ('X')
else:
    wrong_guesses +=0 
    print ('O')
if guess // 100 % 10 != n2:
    wrong_guesses +=1
    print ('X')
else:
    wrong_guesses +=0 
    print ('O')
if guess // 10 % 10 != n3:
    wrong_guesses +=1
    print ('X')
else:
    wrong_guesses +=0 
    print ('O')
if guess // 1 % 10 != n4:
    wrong_guesses +=1
    print ('X')
else:
    wrong_guesses +=0 
    print ('O')
if guess == n1 and guess == n2 and guess == n3 and guess == n4:
 print ("You win!")

这是代码无法结束的部分。代码没有显示正确答案的验证,而只是不断要求更多数字,而是evem是否已经猜到了

我认为写作时问题出在:

while wrong_guesses != 0:
    guess = int(input("Enter your 4-digit code here:"))

由于您无法在循环中更改错误_guess的价值,因此您正在输入无限循环。

我会尝试通过在此循环中扔一些调试打印来验证它,以查看是否是这种情况。

plus,不要"尝试使用"断开"语句,使用" whiles"one_answers" elifs"切换" IF",以及更改变量",而无需了解您在做什么。

希望这会有所帮助。

最新更新