将多行输入存储到String(Python)中

时间:2012-05-03 07:08:33

标签: python

输入:

359716482
867345912
413928675
398574126
546281739
172639548
984163257
621857394
735492861

我的代码:

print("Enter the array:\n")   
userInput = input().splitlines()
print(userInput)

我的问题是,userInput只接受第一行值但不接受 似乎在第一行之后接受了价值观?

5 个答案:

答案 0 :(得分:13)

您可以使用readlines()文件对象方法:

import sys
userInput = sys.stdin.readlines()

答案 1 :(得分:6)

您可以使用生成器轻松创建一个。这是一个这样的实现。请注意,您可以按空白返回或任何键盘中断以打破输入循环

>>> def multi_input():
    try:
        while True:
            data=raw_input()
            if not data: break
            yield data
    except KeyboardInterrupt:
        return


>>> userInput = list(multi_input())
359716482
867345912
413928675
398574126

>>> userInput
['359716482', '867345912', '413928675', '398574126']
>>> 

答案 2 :(得分:2)

每个input()只接受一行。围绕这个的策略:

  • 您可以在循环中重复调用input(),直到收到空行
  • 您可以在循环中重复调用input(),直到用户在类似UNIX的操作系统上执行ctrl-D,此时将引发EOFError,您可以抓住
  • 从文本文件或其他比stdin
  • 更合适的来源读取数据

答案 3 :(得分:0)

你好,

您可以尝试根据您的要求使用的这种方法。我在代码上加了一些注释,以解释我要实现的目标。很高兴有机会接触到一些python代码,我是这种语言的新手,但我完全喜欢它!

undeclared

答案 4 :(得分:-1)

lines = []
while True:
s =input("Enter the string or press ENTER for Output: ")
if s:
    lines.append(s)
else:
    break;

print("OUTPUT: ")
for i in lines:
print (i)

Input:
359716482
867345912
413928675
398574126
546281739
172639548
984163257
621857394
735492861

Output:
359716482
867345912
413928675
398574126
546281739
172639548
984163257
621857394
735492861