如何解决通过按回车而不阻塞来退出while循环如何改善这种方法?
这为我工作:
import sys, select, os
i = 0
while True:
os.system('cls' if os.name == 'nt' else 'clear')
print "I'm doing stuff. Press Enter to stop me!"
print i
if sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
line = raw_input()
break
i += 1
您只需要检查一次输入的标准输入(因为第一个输入将终止循环)。如果条件行/非行为您提供了结果,则可以将它们组合为一个if语句。然后,仅使用一个while
语句,您现在可以使用break
而不是设置标志。
解决方法
因此,我一直在做一些阅读工作,以了解如何通过用户按Enter键退出while循环,并且得出以下结论:
import sys,select,os
switch = 1
i = 1
while switch == 1:
os.system('cls' if os.name == 'nt' else 'clear')
print "I'm doing stuff. Press Enter to stop me!"
print i
while sys.stdin in select.select([sys.stdin],[],0)[0]:
line = raw_input()
if not line:
print "Finished! =]"
switch = 0
else:
print "Finished! =]"
switch = 0
i = i+1
有办法整理吗?特别是“ if not line”和后面的“ else”看起来很凌乱。可以合并成一个吗?比使用“开关”更好的选择?
最初,如果我键入了一堆字符然后按回车键,它并没有停止循环。我将不得不再次按Enter。if组件和else组件用于对其进行设置,以使其在首次按下Enter键时退出。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。