use*_*994 8 python string quit python-3.x
我是一名中学生,我开始学习python中的编码.我一直在看视频教程,但我似乎无法弄清楚如果你键入q如何让游戏退出.在这里我有...
print('How old do you thing Fred the Chicken is?')
number = 17
Quit = q
run = 17
while run:
guess = int(input('Enter What You Think His Age Is....'))
print('How old do you thing Fred the Chicken is?')
number = 17
Quit = 'q'
run = 17
while run:
guess = int(input('Enter What You Think His Age Is....'))
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....')
print('Game Over')
print('Press Q to Quit')
if run == False:
choice = input('Press Q to Quit')
if choice == 'q'
import sys
exit(0)
Run Code Online (Sandbox Code Playgroud)
Rei*_*ica 12
Q
输入Quit = int(input('Press Q to Quit')
Run Code Online (Sandbox Code Playgroud)
你要求Q
作为输入,但只接受一个int
.所以脱掉这个int
部分:
Quit = input('Press Q to Quit')
Run Code Online (Sandbox Code Playgroud)
现在Quit
将是用户键入的内容,所以让我们检查"Q"而不是True
:
if Quit == "Q":
Run Code Online (Sandbox Code Playgroud)
而不是sys.exit(0)
,你可能只是结束你的同时看,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)
Run Code Online (Sandbox Code Playgroud)
这可能只是一个复制/粘贴错误.
我修复了缩进并删除了一些无关的代码(因为你复制了外部循环和一些print语句)并得到了这个:
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
Run Code Online (Sandbox Code Playgroud)
这给了我一个语法错误:
blong @ ubuntu:〜$ python3 chicken.py
文件"chicken.py",第23行
如果选择=='q'
^
SyntaxError:语法无效
所以Python在if
声明之后说这有些不对劲.如果您查看其他if
语句,您会注意到最后一个语句缺少:
,所以将其更改为:
if choice == 'q':
Run Code Online (Sandbox Code Playgroud)
因此,通过该更改,程序可以运行,并且似乎可以执行您想要的操作.
你的指示说"按Q退出",但你实际上只接受"q"退出.你可能想要同时接受这两个.Python有一个叫运营商or
,它有两个真值(True
或False
)并返回True
,如果其中任一个True
(它实际上比这更具有除了值True
和False
,看文档,如果你有兴趣).
例子:
>> True or True
True
>>> True or False
True
>>> False or True
True
>>> False or False
False
Run Code Online (Sandbox Code Playgroud)
所以我们可以要求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)
Run Code Online (Sandbox Code Playgroud)