【发布时间】:2021-11-30 12:12:34
【问题描述】:
import random
print("Welcome to the Number Guessing Game!")
number=random.randint(1,100)
print("I'm thinking of a number between 1 and 100.")
print(number)
def guess(lives):
guess_number=int(input("Make a guess: "))
while guess_number!=number and lives>0:
if guess_number>number:
print("Too High")
elif guess_number<number:
print("Too Low")
else:
print(f"You got it! The answer was {number}")
if lives==0:
print("You are out of moves.YOu loose")
else:
print(f"You have {lives-1} attempts remaining to guess the number")
print("Guess Again:")
guess(lives-1)
def set_lives():
level=input("Choose a difficulty.Type 'easy' or 'hard': ")
if level=="easy":
lives=10
else:
lives=5
return lives
guess(set_lives())
在生命数 ==0 之后,while 语句为假,它必须退出循环。 但在这种情况下,即使它为假,也会执行循环。
【问题讨论】:
-
您不会在循环中减少
lives的值。您递归调用具有较低值的guess,但在 this 调用中,lives的值仍然相同。您不应该使用 while 循环 和 递归。任选其一。
标签: python python-3.x loops while-loop infinite