如何在Python中获取多个多行输入变量?
How to take multiple multiline input variables in Python?
是否可以将多个换行符输入到多个变量中并同时将它们声明为 int
?
为了进一步解释我想要完成的事情,我知道这就是我们如何使用地图 space 分隔输入:
>>> a, b = map(int, input().split())
3 5
>>> a
3
>>> b
5
有换行符吗?类似于:
a, b = map(int, input().split("\n"))
换句话说:我正在尝试一次从多行中获取多个整数输入。
你真的不能,input
和raw_input
在输入新行时停止阅读,return;据我所知,没有办法解决这个问题。来自 input
s documentation:
The function then reads a line from input, converts it to a string (stripping a trailing newline), and returns that.
一个可行的解决方案可能是在循环中调用 input
,然后在 '\n'
上加入。
据我从你的问题中了解到,你想读取输入直到到达 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]
正如其他人所说;我不认为你可以用 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]
a, b = (int(input()) for _ in range(2))
如果您的意思是从多个输入读取多个变量:
a, b, c = map(int, (input() for _ in range(3)))
是否可以将多个换行符输入到多个变量中并同时将它们声明为 int
?
为了进一步解释我想要完成的事情,我知道这就是我们如何使用地图 space 分隔输入:
>>> a, b = map(int, input().split())
3 5
>>> a
3
>>> b
5
有换行符吗?类似于:
a, b = map(int, input().split("\n"))
换句话说:我正在尝试一次从多行中获取多个整数输入。
你真的不能,input
和raw_input
在输入新行时停止阅读,return;据我所知,没有办法解决这个问题。来自 input
s documentation:
The function then reads a line from input, converts it to a string (stripping a trailing newline), and returns that.
一个可行的解决方案可能是在循环中调用 input
,然后在 '\n'
上加入。
据我从你的问题中了解到,你想读取输入直到到达 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]
正如其他人所说;我不认为你可以用 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]
a, b = (int(input()) for _ in range(2))
如果您的意思是从多个输入读取多个变量:
a, b, c = map(int, (input() for _ in range(3)))