【发布时间】:2019-04-24 21:17:21
【问题描述】:
import sys
def optimal_summands(n):
summands = []
sum = n
i = 0
while (sum > 0):
if 2*(i+1) < sum:
i+=1
summands.append(i)
sum-=i
else:
summands.append(sum)
sum=0
return summands
if __name__ == '__main__':
input = sys.stdin.read()
n = int(input)
summands = optimal_summands(n)
print(len(summands))
for x in summands:
print(x, end=' ')
我在使用自己的输入运行此程序时遇到问题。我去我的终端并输入
(ykp) y9@Y9Acer:~/practice$ python optimal_summands.py 15
什么都没有发生。
我应该如何在自定义输入上运行我自己的代码?这看起来应该很简单,但我没有在文档中的任何地方看到如何执行此操作的示例。
【问题讨论】:
-
15是命令行参数,而不是标准输入。 -
15在您的情况下不在stdin中,而是在argv中。那个“什么都没有发生”可能是一个等待你输入的程序。 -
你没有向进程的标准输入提供任何东西,所以
sys.stdin.read()将挂起,等待来自标准输入的 EOF -
如果我不能使用终端输入,那么 stdin 的意义何在?我如何向标准输入提供数据?