如何在Python中获取多个多行输入变量?

问题描述 投票:0回答:6

是否可以将多个换行符输入放入多个变量中并同时将它们声明为

int

为了进一步解释我想要完成的任务,我知道这就是我们使用地图进行空格分隔输入的方式:

>>> a, b = map(int, input().split())
3 5
>>> a
3
>>> b
5

是否有换行符的等效项?比如:

a, b = map(int, input().split("\n"))

改写:我试图一次从多行获取多个整数输入。

python python-2.7 python-3.x input raw-input
6个回答
6
投票

正如其他人所说;我认为你不能用

input()
做到这一点。

但是你可以这样做:

import sys
numbers = [int(x) for x in sys.stdin.read().split()]

请记住,您可以通过按

Ctrl+D
完成输入,然后您将得到一个数字列表,您可以像这样打印它们(只是为了检查它是否有效):

for num in numbers:
    print(num)

编辑: 例如,您可以使用这样的条目(每行一个数字):

1
543
9583
0
3

结果将是:

numbers = [1, 543, 9583, 0, 3]

或者您可以使用这样的条目:

1
53          3
3 4 3 
      54
2

结果将是:

numbers = [1, 53, 3, 4, 3, 54, 2]


1
投票

根据我对你问题的理解,你想要读取输入,直到到达

EOF
字符并从中提取数字:

[ int(x.strip()) for x in sys.stdin.read().split() ]

一旦发送

ctrl+d
或达到条目上标记的
EOF
,它就会停止。

例如此条目:

1 43 43   
434
56 455  34
434 

[EOF]

将读作:

[1, 43, 43, 434, 56, 455, 34, 434]


0
投票

你真的不能,

input
raw_input
在输入新行时停止阅读并返回;据我所知,没有办法解决这个问题。来自
input
的文档

该函数然后从输入中读取一行,将其转换为字符串(去除尾随换行符),然后返回。

一个可行的解决方案可能是循环调用

input
,然后加入
'\n'


0
投票

a, b = (int(input()) for _ in range(2))


0
投票

如果您希望从多个输入读取多个变量:

a, b, c = map(int, (input() for _ in range(3)))

0
投票
import sys
print("Type or Paste your job description. Click Ctrl+Z once finished")
text = sys.stdin.read()
print(text)
© www.soinside.com 2019 - 2024. All rights reserved.