【发布时间】:2020-08-28 14:28:09
【问题描述】:
我是 python 新手。我正在猜测随机数游戏,当同时使用 int 和 str 作为输入时遇到问题,我希望用户在按下 Q 或 q 时退出程序,同时游戏也检查数字。经过数小时的谷歌搜索和重写,这是我想出的:
#! Python3
import random
upper = 10
number = random.randint(1, upper)
print(number) #TODO: THIS LINE FOR TESTING ONLY
print("Guess a number between 1 and {}. Press Q to quit!".format(upper))
total_guesses = 0
guess = 0
while guess != number:
total_guesses += 1
guess = input()
if guess.isalpha():
if guess == "q" or "Q":
break
elif guess != "q" or "Q":
print("Please type in a valid guess.")
guess = 0
if guess.isnumeric():
guess = int(guess)
if guess == number:
print("Good job! You guessed the number in {} tries!.".format(total_guesses))
break
if guess < number:
print("Guess Higher!")
if guess > number:
print("Guess lower!")
else:
print("Valid inputs only")
guess = 0
此代码几乎可以按预期工作;我现在遇到的问题是,在第 13 行和第 14 行,每次键入任何字母时循环都会中断,即使我将 if 语句设置为仅检查 Q 或 q,我也不明白为什么这样做。任何帮助表示赞赏!
【问题讨论】:
标签: python-3.x if-statement while-loop