作为Q
输入
Quit = int(input('Press Q to Quit')
您要求Q
作为输入,但只接受int
. 所以取下int
部分:
Quit = input('Press Q to Quit')
现在Quit
将是用户输入的任何内容,所以让我们检查“Q”而不是True
:
if Quit == "Q":
而不是sys.exit(0)
,您可能只是结束您的 while 查找,break
或者仅return
当您在一个函数中时。
此外,我不建议将只存储用户输入的变量命名为“Quit”,因为它最终会令人困惑。
请记住,缩进在 Python 中很重要,所以它必须是:
if run == False:
choice = input('Press Q to Quit')
if choice == "Q":
# break or return or..
import sys
sys.exit(0)
不过,这可能只是一个复制/粘贴错误。
缩进和语法
我修复了缩进并删除了一些无关的代码(因为您复制了外部循环和一些打印语句)并得到了这个:
print('How old do you thing Fred the Chicken is?')
number = 17
run = True
while run:
guess = int(input('Enter What You Think His Age Is....t'))
if guess == number:
print('Yes :D That is his age...')
run = False
elif guess < number:
print('No, Guess a little higher...')
elif guess > number:
print('No, Guess a little lower....')
if run == False:
print('Game Over')
choice = input('Press Q to Quit')
if choice == 'q'
break
这给了我一个语法错误:
blong@ubuntu:~$ python3 chicken.py
File "chicken.py", line 23
if choice == 'q'
^
SyntaxError: invalid syntax
所以 Python 在if
声明之后说有问题。如果您查看其他if
语句,您会注意到:
最后缺少该语句,因此将其更改为:
if choice == 'q':
因此,通过该更改,程序将运行,并且似乎可以执行您想要的操作。
一些建议
您的指示说“按 Q 退出”,但实际上您只接受“q”退出。您可能想同时接受两者。Python 有一个称为 的运算符or
,它接受两个真值 ( True
or False
) 并True
在其中任何一个为时返回True
(它实际上对除True
and之外的值所做的更多False
,如果您有兴趣,请参阅文档)。
例子:
>> True or True
True
>>> True or False
True
>>> False or True
True
>>> False or False
False
所以我们可以用 求 Q 或 q if choice == "Q" or choice == "q":
。
另一种选择是将字符串转换为小写,并且只检查q
, 使用if choice.lower() == "q":
. 如果choice
是 Q,它将首先将其转换为 q(带有.lower()
),然后进行比较。
你的数字总是 17。Python 有一个名为random.randint()的函数,它会给你一个随机数,这可能会使游戏更有趣。例如,这将使鸡的年龄在 5 到 20 岁(含)之间:
number = random.randint(5, 20)