pythonpython-3.xinputline

How to input 2 integers in one line in Python?


I wonder if it is possible to input two or more integer numbers in one line of standard input. In C/C++ it's easy:

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);
}

In Python, it won't work:

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'

So how to do it?


Solution

  • Split the entered text on whitespace:

    a, b = map(int, input().split())
    

    Demo:

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