gpt4 book ai didi

python - 按 enter 键退出 while 循环而不阻塞。我该如何改进这种方法?

转载 作者:太空狗 更新时间:2023-10-30 02:04:21 26 4
gpt4 key购买 nike

所以我一直在研究如何通过用户按下回车键退出 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”看起来很乱。它们可以合二为一吗?使用“开关”的更好选择?

最初,如果我输入一堆字符然后按回车键,它不会停止循环。我将不得不再次按回车键。 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

您只需要检查一次输入的标准输入(因为第一个输入将终止循环)。如果条件行/非行对您有结果,您可以将它们组合成一个 if 语句。然后,只使用一个 while 语句,您现在可以使用 break 而不是设置标志。

关于python - 按 enter 键退出 while 循环而不阻塞。我该如何改进这种方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com