提问人:Brandhorst Beaumont 提问时间:2/4/2023 更新时间:2/4/2023 访问量:77
我需要停止一个无限的while循环
I need to stop an infinite while loop
问:
当脚本运行时,它需要在输入之外才能捕获关键字并打破循环,我需要立即用“esc”字打破循环,而脚本等待用户输入
¿我是怎么做到的?
import time ; import keyboard as kb
while (True):
if kb.is_pressed('esc'):
break
n = str(input('f(x) = '))
print(n)
time.sleep(1)
这有点心血来潮,但停止循环的唯一方法是按住“esc”关键字,按下该键并立即打破循环会更舒服,我尝试了几种方法,但它们都会导致同样的事情,而这是最有效的
答:
0赞
Shail
2/4/2023
#1
如果您可以使用 + 而不是 ,则可以捕获错误。CtrlCescKeyboardInterrupt
import time
while True:
try:
n = str(input('f(x) = '))
time.sleep(1)
except KeyboardInterrupt:
print("\nBreaking from the infinite loop")
break
SIGINT
是我们按 + 时发送的信号。默认操作是终止进程。但是,在 Python 中,会引发错误。CtrlCKeyboardInterrupt
按下 escape 键时可能很难触发 a,因为中断过程取决于硬件和操作系统。SIGINT
评论
sleep
input