繁体   English   中英

python sys.stdin for循环不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM