如何在python中正确退出程序

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,它有两个真值(TrueFalse)并返回True,如果其中任一个True(它实际上比这更具有除了值TrueFalse,看文档,如果你有兴趣).

    例子:

    >> 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)