是否可以将多个换行输入转换为多个变量&一下子将它们声明为int
?
为了进一步解释我想要实现的目标,我知道这是我们如何使用地图进行空间分隔输入:
>>> a, b = map(int, input().split())
3 5
>>> a
3
>>> b
5
是否有换行符的等价物?类似的东西:
a, b = map(int, input().split("\n"))
改述:我试图一次从多行获取多个整数输入。
答案 0 :(得分:5)
正如其他人所说的那样;我不认为你可以用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 :(得分:0)
你真的不能,input
和raw_input
停止阅读并在输入新行时返回;根据我所知,没有办法解决这个问题。来自input
s documentation:
然后函数从输入中读取一行,将其转换为字符串(剥离尾部换行符),然后返回该行。
可行的解决方案可能是在循环中调用input
并在之后加入'\n'
。
答案 2 :(得分:0)
根据我的理解,您希望在达到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]
答案 3 :(得分:0)
a,b =(int(input())for _ in range(2))
答案 4 :(得分:0)
如果您想从多个输入中读取多个变量:
a, b, c = map(int, (input() for _ in range(3)))