我想知道是否可以在一行标准输入中输入两个或多个整数。在 C/C++ 中这很容易:
C++:
#include <iostream>
int main() {
int a, b;
std::cin >> a >> b;
return 0;
}
C:
#include <stdio.h>
void main() {
int a, b;
scanf("%d%d", &a, &b);
}
在Python中,它不起作用:
script.py
:
#!/usr/bin/python3
a = int(input())
b = int(input())
$ python3 script.py
3 5
Traceback (most recent call last):
File "script.py", line 2, in <module>
a = int(input())
ValueError: invalid literal for int() with base 10: '3 5'
那么要怎么做呢?
在空白处分割输入的文本:
a, b = map(int, input().split())
演示:
>>> a, b = map(int, input().split())
3 5
>>> a
3
>>> b
5
如果您使用的是 Python 2,那么 Martijn 提供的答案不起作用。相反,使用:
a, b = map(int, raw_input().split())
x,y = [int(v) for v in input().split()]
print("x : ",x,"\ty: ",y)
在Python中,每次我们使用
input()
函数时,它都会直接切换到下一行。要使用多个内联输入,我们必须使用 split()
方法和 input
函数,通过它我们可以获得所需的输出。
a, b = [int(z) for z in input().split()]
print(a, b)
输入:
3 4
输出:
3 4
x, y = int(input()), int(input())
print("x : ",x,"\ty: ",y)