[英]Python random number guessing game
I'm having issues with this random number guessing game. There are 2 issues: The first issue has to do with the counting of how many tries you have left. it should give you 3 changes but after the 2nd one it goes into my replay_input section where I am asking the user if they want to play again.
import random
# guess the # game
guess = input("Enter in your numerical guess. ")
random_number = random.randint(0, 10)
print(random_number) # used to display the # drawn to check if code works
number_of_guess_left = 3
# this is the main loop where the user gets 3 chances to guess the correct number
while number_of_guess_left > 0:
if guess != random_number:
number_of_guess_left -= 1
print(f"The number {guess} was an incorrect guess. and you have {number_of_guess_left} guesses left ")
guess = input("Enter in your numerical guess. ")
elif number_of_guess_left == 0:
print("You lose! You have no more chances left.")
else:
print("You Win! ")
break
第二部分与重播输入有关,我似乎无法让它循环回到开头重新开始游戏。
replay_input = input("Yes or No ").lower()
if replay_input == "yes":
guess = input("Enter in your numerical guess. ")
在此处发布问题之前,请先关注基础知识。 尝试使用https://thonny.org/等工具进行调试。 但是,我更新了您的代码,请检查。
import random
# guess the # game
random_number = random.randint(0, 10)
print(random_number)
# don't forget to convert to int
guess = int(input("Enter in your numerical guess. "))
number_of_guess_left = 3
# this is the main loop where the user gets 3 chances to guess the correct number
while number_of_guess_left > 0:
number_of_guess_left -= 1
if guess == random_number:
print("You Win! ")
break
else:
if number_of_guess_left == 0:
print("You lose! You have no more chances left.")
break
else:
print(f"The number {guess} was an incorrect guess. and you have {number_of_guess_left} guesses left ")
guess = int(input("Enter in your numerical guess. "))
break
语句退出while
循环。 循环中的代码执行一次,最后遇到break
,然后继续执行循环后的代码。
您可以通过将游戏包装在一个我在下面称为play_game
的函数中让玩家重玩游戏。 最后的while True
循环(在play_game
之外)将循环直到遇到break
语句。 玩家每循环玩一次游戏。 当他们在重播提示符处输入“yes”以外的任何内容时,循环将停止,这将使其命中break
语句。
import random
def play_game():
# guess the # game
guess = input("Enter in your numerical guess. ")
random_number = random.randint(0, 10)
print(random_number) # used to display the # drawn to check if code works
number_of_guess_left = 3
# this is the main loop where the user gets 3 chances to guess the correct number
while number_of_guess_left > 0:
if guess != random_number:
number_of_guess_left -= 1
print(f"The number {guess} was an incorrect guess. and you have {number_of_guess_left} guesses left ")
guess = input("Enter in your numerical guess. ")
elif number_of_guess_left == 0:
print("You lose! You have no more chances left.")
else:
print("You Win! ")
while True:
play_game()
replay_input = input("Yes or No ").lower()
if replay_input != "yes":
break
这是工作,但它是一个简单的代码:
import random
number_of_guess_left = 3
rand_counter = 0;
while number_of_guess_left > 0:
if (rand_counter == 0):
random_number = random.randint(0, 10)
print(f"rand no: {random_number} dd")
guess = int(input("Enter in your numerical guess : "))
if guess != random_number:
number_of_guess_left -= 1
if number_of_guess_left != 0:
print(f"The number {guess} was an incorrect guess. and you have {number_of_guess_left} guesses left ")
rand_counter += 1;
continue;
else:
print("You lose! You have no more chances left, Do you want to play again? ")
is_play_again = input(" Y or N :")
if is_play_again.__eq__("y"):
rand_counter = 0;
number_of_guess_left = 3;
continue
elif is_play_again.__eq__("n"):
print("Game Over");
break;
elif random_number == guess:
print("You Win! ")
break
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.