gpt4 book ai didi

python - 继续阅读 sys.stdin

转载 作者:太空宇宙 更新时间:2023-11-04 10:26:42 25 4
gpt4 key购买 nike

是否可以继续读取 sys.stdin 上的输入?我正在尝试根据输入连续执行一个函数。 (我的函数只打印到 sys.stdoutsys.stderr,并且不返回任何东西。)我的代码:

def prime(number):
number = abs(int(number))
for i in range(3, number):
if number % i == 0:
print("Not Prime!", file = sys.stderr, flush = True)
sys.exit(0)
print("Prime!", file = sys.stdout, flush = True)

for i in sys.stdin:
prime(i)

这是输出:

>>> for i in sys.stdin:
prime(i)
43 # Input
Prime! # In sys.stdout and it continues reading from sys.stdin
55 # Input
Not Prime! # In sys.stderr and stops.
>>>

我已经对其进行了测试,并确定当我的函数在 sys.stdout 上输出时它会继续读取,而在 sys.stderr 上输出时它会停止读取。

最佳答案

在将“Not prime”打印到 sys.stderr 之后,您调用了 sys.exit,这会导致您的程序终止。如果你删除它,读取 sys.stdin 应该继续,直到你发出一个 EOF 字符(Windows 上的 Ctrl+Z,POSIX 上的 Ctrl+D)。

关于python - 继续阅读 sys.stdin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28967428/

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