Python 如何通过函数退出整个程序?

Python 如何通过函数退出整个程序?,python,loops,if-statement,while-loop,Python,Loops,If Statement,While Loop,我是python的高手,我想做一个“数字招牌”。我现在只有“A”和“B”。 我不知道如何使用sys.exit()完全退出程序。我猜它只会退出函数,然后继续下一行代码以请求下一个字母。我希望它退出程序完全一旦“结束”输入,但仍然有字母显示,然后退出 import time, sys def getLetter(letter): while True: if letter =='A'or letter=='a': print('<A>')

我是python的高手,我想做一个“数字招牌”。我现在只有“A”和“B”。 我不知道如何使用sys.exit()完全退出程序。我猜它只会退出函数,然后继续下一行代码以请求下一个字母。我希望它退出程序完全一旦“结束”输入,但仍然有字母显示,然后退出

import time, sys

def getLetter(letter):
    while True:
        if letter =='A'or letter=='a':
            print('<A>')
            return
            break
    
        elif letter =='B'or letter=='b':
            print('<B>')
            return
            break
        elif letter == 'space':
            print('')
            time.sleep(0.1)
            print('')
            time.sleep(0.1)
            print('')
            time.sleep(0.1)
            print('')
            time.sleep(0.1)
            print('')
            time.sleep(0.1)
            print('')
            time.sleep(0.1)
            print('')
            time.sleep(0.1)
        elif letter == 'end':
            sys.exit('Signboard Terminated')

#instructions
print('Welcome to  virtual signboard\n')
time.sleep(0.5)
print('Instructions:')
time.sleep(0.5)
print('Enter each character individually (max: 10 characters).')
time.sleep(0.5)
print('To enter a space, type "space"')
time.sleep(0.5)
print('To finish, type "end"')

print('Enter first character:')
firstLetter=input()
time.sleep(0.2)
print('\nEnter second character:')
secondLetter=input()
time.sleep(0.2)
print('\nEnter third character:')
thirdLetter=input()
time.sleep(0.2)

#getting output
output=getLetter(firstLetter)
output=getLetter(secondLetter)
output=getLetter(thirdLetter)
导入时间,系统 信(信): 尽管如此: 如果字母=='A'或字母=='A': 打印(“”) 返回 打破 elif字母=='B'或字母=='B': 打印(“”) 返回 打破 elif字母==‘空格’: 打印(“”) 睡眠时间(0.1) 打印(“”) 睡眠时间(0.1) 打印(“”) 睡眠时间(0.1) 打印(“”) 睡眠时间(0.1) 打印(“”) 睡眠时间(0.1) 打印(“”) 睡眠时间(0.1) 打印(“”) 睡眠时间(0.1) elif字母==“结束”: 系统退出(“标志牌终止”) #指示 打印('欢迎使用虚拟招牌\n') 睡眠时间(0.5) 打印('说明:') 睡眠时间(0.5) 打印('单独输入每个字符(最多10个字符)。') 睡眠时间(0.5) 打印('要输入空格,请键入“空格”) 睡眠时间(0.5) 打印('要完成,请键入“结束”) 打印('输入第一个字符:') firstLetter=input() 睡眠时间(0.2) 打印('\n输入第二个字符:') 第二个字母=输入() 睡眠时间(0.2) 打印('\n输入第三个字符:') thirdLetter=输入() 睡眠时间(0.2) #获取输出 输出=getLetter(第一个字母) 输出=getLetter(第二个字母) 输出=getLetter(第三个字母) 因此,理想情况下,这会发生: 输入第一个字符: A

输入第二个字符: 结束


整个程序将停止在那里,不要求第二个和第三个字符,但只显示一个

sys.exit
确实用于终止整个程序。在您的情况下,程序流可能无效。请与下面的代码进行比较,并决定您的应用程序应应用于哪个工作流

import sys

def getLetter(letter):
    if letter =='A'or letter=='a':
        print('<A>')
    elif letter =='B'or letter=='b':
        print('<B>')
    elif letter == 'space':
        print('<space>')
    elif letter == 'end':
        sys.exit('Signboard Terminated')
    else:
        print("<Other number>")

#instructions
print('Welcome to  virtual signboard\n')
print('Instructions:')
print('Enter each character individually (max: 10 characters).')
print('To enter a space, type "space"')
print('To finish, type "end"')

while True:
    print('Enter character:')
    character = input()
    #getting output
    getLetter(character)

导入系统 信(信): 如果字母=='A'或字母=='A': 打印(“”) elif字母=='B'或字母=='B': 打印(“”) elif字母==‘空格’: 打印(“”) elif字母==“结束”: 系统退出(“标志牌终止”) 其他: 打印(“”) #指示 打印('欢迎使用虚拟招牌\n') 打印('说明:') 打印('单独输入每个字符(最多10个字符)。') 打印('要输入空格,请键入“空格”) 打印('要完成,请键入“结束”) 尽管如此: 打印('输入字符:') 字符=输入() #获取输出 getLetter(字符)
首先,退出程序不需要导入
sys
。使用
exit('Signboard Terminated')
终止消息
Signboard Terminated
。如果我是正确的,代码看起来很好,因为您首先获取字符输入,然后将其传递到函数以打印招牌。如果用户键入
end
时需要结束程序,则必须检查每个用户的输入,如果用户在调用getLetter()函数之前键入单词
end

i、 e


当您输入
a
,然后输入
b
,然后输入
exit
时,它将正确退出。是的,
sys.exit
的目的就是终止整个程序。嘿,谢谢你的回复。我想知道,例如,如果我输入了一个,并且立即想退出,而不必输入下一个字母,我该怎么做?顺便说一句,
getLetter
自动返回
None
,因此
输出将始终是
None
嘿,谢谢你的回答!它退出程序,但不同时显示和显示。理想情况下,它应该是:Enter character:A Enter character:B Enter character:end@AccioPotter然后您应该更改应用程序以执行您喜欢的任何操作。此示例显示了标题中问题后面的
sys.exit
的用法!是的,所以用户首先输入所有内容,然后再打印招牌。我尝试了你的代码,它可以完全结束程序,但它没有显示“结束”之前的字符。
def exitFun(letter):
    if letter.lower() == "end":
        exit('terminated')

print('Enter first character:')
firstLetter=input()
exitFun(firstLetter)
time.sleep(0.2)
print('\nEnter second character:')
secondLetter=input()
exitFun(secondLetter)
time.sleep(0.2)