因此,我一直在阅读有关如何通过用户按 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 键,它不会停止循环。我必须再次按 Enter 键。 if not 和 else 组件旨在将其设置为在第一次按 Enter 时退出。
这对我有用:
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
您只需检查输入的 stdin 一次(因为第一个输入将终止循环)。如果条件行/非行有适合您的结果,您可以将它们组合成一个 if 语句。然后,只用一个while
正在使用的语句,您现在可以使用break
而不是设置一个标志。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)