作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当我运行以下示例代码并仅按“q”时,它会正常结束,但是如果我按任何其他字符“例如许多中断和很多其他字符”然后按“q”它不会退出,我该如何解决这个问题?
import curses, time
def main(sc):
sc.nodelay(1)
while True:
sc.addstr(1, 1, time.strftime("%H:%M:%S"))
sc.refresh()
if sc.getch() == ord('q'):
break
time.sleep(1)
if __name__=='__main__': curses.wrapper(main)
最佳答案
按下其他键会导致 time.sleep(1)
调用,您应该等待 n
秒(n
= 其他键击次数) .
删除 time.sleep
调用将解决您的问题。
def main(sc):
sc.nodelay(1)
while True:
sc.addstr(1, 1, time.strftime("%H:%M:%S"))
sc.refresh()
if sc.getch() == ord('q'):
break
#time.sleep(1) <------
备选方案:有条件地调用time.sleep
(仅当没有按下任何键时,如果在非-阻塞模式):
while True:
sc.addstr(1, 1, time.strftime("%H:%M:%S"))
sc.refresh()
key = sc.getch()
if key == ord('q'):
break
elif key < 0:
time.sleep(1)
关于Python3 + 诅咒 : How to press "q" for ending program immediately?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24308583/
我是一名优秀的程序员,十分优秀!