我有一长串的数字,我想通过raw_input输入到我的代码中。它包含通过SPACES
和ENTER/RETURN
间隔开的数字。该列表看起来像this。当我尝试使用函数raw_input,并复制粘贴长数字列表时,我的变量只保留第一行数字。到目前为止,这是我的代码:
def main(*arg):
for i in arg:
print arg
if __name__ == "__main__": main(raw_input("The large array of numbers"))
如何让我的代码继续阅读其余数字? 或者如果不可能,我可以让我的代码以任何方式确认输入吗?
P.S。虽然这是一个项目euler问题,但我不想要代码来回答项目的问题,或者建议硬编码数字。只是建议将数字输入我的代码。
答案 0 :(得分:1)
如果我正确理解你的问题,我认为这段代码应该有用(假设它在python 2.7中):
sentinel = '' # ends when this string is seen
rawinputtext = ''
for line in iter(raw_input, sentinel):
rawinputtext += line + '\n' #or delete \n if you want it all in a single line
print rawinputtext
(代码取自:Raw input across multiple lines in Python)
PS:甚至更好,你可以在一行中做同样的事情!
rawinputtext = '\n'.join(iter(raw_input, '') #replace '\n' for '' if you want the input in one single line
答案 1 :(得分:0)
我认为您实际需要的是直接从stdin
通过sys.stdin
阅读。但是你需要接受这样一个事实:应该有一种机制来停止接受来自stdin
的任何数据,在这种情况下,通过传递EOF
字符是可行的。通过组合键EOF
[CNTRL]+d
个字符
>>> data=''.join(sys.stdin)
Hello
World
as
a
single stream
>>> print data
Hello
World
as
a
single stream