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