“turns”变量不会更新,并保持在起始值 10 或 5。我已经尝试了几件事,最终可能会自己解决它。但我想因为我才开始编程大约两周,所以希望有人能解释为什么我的代码不能按原样工作。我觉得应该这样,因为变量不在函数中。 :)
### A simple 1 - 100 number guessing game. Supposed to loop either 10 or 5 times depending on selecting easy or hard mode.
import random
#from replit import clear
#from art import logo
EASY_TURNS = 10
HARD_TURNS = 5
number = 0
guess = 0
def play_game():
#print(logo)
print("Welcome to my guessing game.")
def pick_number():
number = random.randint(1, 101)
return number
def set_difficulty():
level = input("Type 'easy or 'hard' for difficulty: ")
if level == 'easy':
return EASY_TURNS
else:
return HARD_TURNS
number = pick_number()
turns = set_difficulty()
print("I'm thinking of a number 1 -100.")
guess = int(input("What number would you like to choose? "))
while guess != number:
if guess > number:
print(f"Turns left: {turns}")
guess = int(input(f"{guess} is too high. Try again: "))
turns - 1
else:
print(f"Turns left: {turns}")
guess = int(input(f"{guess} is too low. Try again: "))
turns - 1
if turns == 0:
input("Sorry you are out of guesses. Play again? 'y' or 'n': ") == 'y'
#clear()
play_game()
#else:
#clear()
if guess == number:
print(f"You win with {number}.")
if input("Play again? 'y' or 'n': ") == 'y':
#clear()
play_game()
#else:
#clear()
play_game()
输出:(圈数未倒计时)
Welcome to my guessing game.
输入“简单”或“困难”来表示难度:简单 我在想一个数字 1 -100。 您想选择什么号码? 50 左转:10 50太低了。再试一次:75 左转:10 75太低了。再试一次:85 左转:10 85太高了。再试一次:.
你从不更新
turns
。你刚刚:
turns - 1
当您需要分配给
turns
时:
turns = turns - 1
或者更好:
turns -= 1