我正在创建一个 python 脚本,提示用户猜测密码是什么,他们有 6 次尝试这样做。我注意到当我运行程序时,当用户正确猜出数字时,while 循环中的最后一个 else 语句重复了两次,我不明白为什么。我希望 while 循环在用户正确猜出数字并打印语句以及尝试次数超过 6 并且用户没有正确猜出数字时中断
def guessing_game(secret_number: int, user_guess: int):
num_tries: int = 0
user_name: str = input("Please enter your name: ")
print(f"Hello {user_name}, i am thinking of a number between 1 and 20")
secret_number: int = randint(1, 20)
user_guess: int = int(input("Guess what it is: "))
while num_tries != 6:
if user_guess > secret_number:
user_guess = int(input("Your guess is too high. Try again: "))
elif user_guess < secret_number:
user_guess = int(input("Your guess is too low. Try again: "))
else:
print(f"Congrats {user_name}, {secret_number} was the number i was thinking of")
num_tries += 1
if user_guess != secret_number and num_tries == 6:
print(f"The number I was thinking of was {secret_number}")
答案 0 :(得分:0)
要在 Python 中留下循环,您可以使用 break
指令。以下是在您的代码中使用它的方法:
def guessing_game(secret_number: int, user_guess: int):
num_tries: int = 0
user_name: str = input("Please enter your name: ")
print(f"Hello {user_name}, i am thinking of a number between 1 and 20")
secret_number: int = randint(1, 20)
user_guess: int = int(input("Guess what it is: "))
while num_tries != 6:
if user_guess > secret_number:
user_guess = int(input("Your guess is too high. Try again: "))
elif user_guess < secret_number:
user_guess = int(input("Your guess is too low. Try again: "))
else:
print(f"Congrats {user_name}, {secret_number} was the number i was thinking of")
break
num_tries += 1
if user_guess != secret_number and num_tries == 6:
print(f"The number I was thinking of was {secret_number}")
但是,您应该在函数中定义参数 user_guess
和 secret_number
时删除它。要么将它们用作函数的参数,要么将它们定义到函数中。
答案 1 :(得分:0)
我重新整理了一下。如果您定义了正确的条件,则无需休息。在这里,我们等到玩家猜到或计数太高。完全如你所愿。它在两个条件之一下结束。
import random
num_tries = 0
guessed = False
user_name: str = input("Please enter your name: ")
print(f"Hello {user_name}, i am thinking of a number between 1 and 20")
secret_number: int = random.randint(1, 20)
user_guess: int = int(input("Guess what it is: "))
while num_tries < 6 and not guessed:
if user_guess > secret_number:
user_guess = int(input("Your guess is too high. Try again: "))
elif user_guess < secret_number:
user_guess = int(input("Your guess is too low. Try again: "))
else:
guessed = True
print(f"Congrats {user_name}, {secret_number} was the number i was thinking of")
num_tries += 1
if not guessed:
print(f"The number I was thinking of was {secret_number}")