[英]python sys.stdin for loop not working
我正在尝试编写一个简单的程序,该程序将从键盘读取为sys.stdin.readline()
我正在尝试在``for''循环中这样做
import sys
for line in sys.stdin.readline().strip("\n"):
if(line == 'stop'):
break
print(line)
问题是1)for循环未执行。 它在第一次输入后退出2)如果停止输入时if语句未命中3)如果我输入“ hi”并命中ctrl + DI则将输出视为“ H”“ I”
我可以通过while循环实现我的目标,如下所示,但在For循环中如何实现呢?
import sys
def readfromconsole():
new_list = []
while True:
line = sys.stdin.readline().rstrip("\n")
if(line == 'enough'):
break
else:
new_list.append(line)
print(new_list)
return
print("Welcome")
print("please enter your input, enough to stop")
readfromconsole()
它在第一次插入后停止,因为您要在for循环的定义中分配要迭代的值。 您可以通过在解释器中执行sys.stdin.readline()
来查看。 这意味着您的循环相当于
for line in <first entered line>:
do things
在while循环中,它将不断要求更多输入,因此您的代码可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.