python sys.stdin for循环不起作用

时间:2016-04-13 18:42:05

标签: python for-loop

我正在尝试编写一个简单的程序,它将从键盘读取为sys.stdin.readline()

我正试图在' for'循环为

@Column(name="codsal", nullable=false)      
public Long getCodsal() {
    return codsuc;
}
public void setCodsal(Long codsal) {
    this.codsuc = codsal;
}

问题是 1)for循环没有执行。它在第一次输入后退出 2)当输入停止时,if语句没有被命中 3)如果我输入" hi"然后点击ctrl + D我看到输出为 " H" " I"

我可以通过while循环实现我的目标,如下所示但是如何在For循环中执行?

import sys
for line in sys.stdin.readline().strip("\n"):
if(line == 'stop'):
    break
print(line)

1 个答案:

答案 0 :(得分:0)

它在第一次交互后停止,因为您在for循环的定义中指定了迭代的值。你可以这样看 解释器中sys.stdin.readline()。这意味着你的循环等同于

for line in <first entered line>:
    do things

在你的while循环中,它会不断要求更多输入,因此你的代码可以运行。