Как ввести 2 целых числа в одну строку в Python?

интересно, можно ли ввести два или более целых чисел в одной строке стандартного ввода. В 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, это не сработает:

enedil@notebook:~$ cat script.py 
#!/usr/bin/python3
a = int(input())
b = int(input())
enedil@notebook:~$ 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'

Итак, как это сделать?

2 ответов


разбить введенный текст на пробелы:

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())