enedil
enedil

Reputation: 1645

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?

Upvotes: 21

Views: 74646

Answers (5)

Dhananjay Porwal
Dhananjay Porwal

Reputation: 43

In python, every time we use input() function it directly switches to the next line. To use multiple inline inputs, we have to use split() method along with input function by which we can get desired output.

a, b = [int(z) for z in input().split()]
print(a, b)

Input:

3 4

Output:

3 4

Upvotes: 0

Shubhangi Ingale
Shubhangi Ingale

Reputation: 1

x,y = [int(v) for v in input().split()]
print("x : ",x,"\ty: ",y)

Upvotes: 0

Shubhangi Ingale
Shubhangi Ingale

Reputation: 1

x, y = int(input()),  int(input())
print("x : ",x,"\ty: ",y)

Upvotes: -2

Dhruv Bhagat
Dhruv Bhagat

Reputation: 73

If you are using Python 2, then the answer provided by Martijn does not work. Instead,use:

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

Upvotes: 5

Martijn Pieters
Martijn Pieters

Reputation: 1121644

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

Upvotes: 41

Related Questions