
Python中实现当人为介入时停止循环的一个例子,当程序中出现 KeyboardInterrupt 异常(例如通过键盘的ctrl-C)时,程序会首先执行 stop_program() 方法再退出循环:
def stop_program():
# 这里可以添加程序停止后需要执行的 *** 作
print("程序已停止")
exit()
while True:
try:
# 这里写需要循环执行的程序代码
print("正在执行程序")
except KeyboardInterrupt:
stop_program()
在上述代码中,我们首先定义了一个 stop_program() 方法,用于在程序停止前执行一些必要的 *** 作。在主程序的循环中,我们使用 try-except 语句来捕获 KeyboardInterrupt 异常,如果用户通过键盘输入中断信号(例如ctrl-C),则会触发这个异常。在异常处理块中,我们先执行 stop_program() 方法,然后退出循环,程序就会停止。
你可以将需要循环执行的代码替换为实际需要执行的代码,然后运行这个程序。当你想要停止程序时,可以通过键盘输入ctrl-C或直接关闭程序窗口来触发停止程序的 *** 作。程序会先执行 stop_program() 方法再停止。当然,你也可以根据实际需求来修改 stop_program() 方法中的代码,例如关闭文件、保存数据等。
return break 都可以终止函数的运行 exit(0) # 无错误退出 exit(1) # 有错误退出这两条语句一般都会加在程序的最后 因为exit是迫使系统去终止程序的运行
一般命令行下使用Ctrl +C可以打断或者退出当前活动。
但按照你题目的描述,你应该进入了Python环境。 如果你说的情况跟上图类似的话, quit() 函数可以退出Python,回到cmd命令行下。
另开一个终端,ps查看testpy的进程号,然后kill -9杀死该进程。
或直接退出当前运行终端。
追问:
请教,为什么其他一些程序在shell中用命令跑起来后,可以用ctrl+C终止,而python不行?
追答:
ctrl+C其实是发送SIGTERM的信号,而SIGTERM信号可以被用户态的进程所截获并且可以由用户去控制收到信号后的处理(如直接忽视,直接忽视就像你看到的,进程不会退出)。
如果对这方面感兴趣,可以看看LINUX的信号机制。
请采纳。
以上就是关于如何在Python人为强制退出循环前,先触发一个方法再退出全部的内容,包括:如何在Python人为强制退出循环前,先触发一个方法再退出、python 函数调用不出来,程序直接退出且不报错、win10命令行怎么退出python等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)