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
int main[] {
int a, b;
std::cin >> a >> b;
return 0;
}
C
:
#include
void main[] {
int a, b;
scanf["%d%d", &a, &b];
}
In Python
, it won't work:
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
a = int[input[]]
ValueError: invalid literal for int[] with base 10: '3 5'
So how to do it?
asked Apr 23, 2014 at 19:47
4
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
answered Apr 23, 2014 at 19:48
Martijn Pieters♦Martijn Pieters
984k273 gold badges3872 silver badges3233 bronze badges
9
If you are using Python 2, then the answer provided by Martijn does not work. Instead,use:
a, b = map[int, raw_input[].split[]]
answered Oct 15, 2017 at 17:57
1
x,y = [int[v] for v in input[].split[]]
print["x : ",x,"\ty: ",y]
answered Sep 3, 2021 at 17:47
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
answered Nov 28, 2021 at 11:39
x, y = int[input[]], int[input[]]
print["x : ",x,"\ty: ",y]
answered Sep 3, 2021 at 6:58
2
Not the answer you're looking for? Browse other questions tagged python python-3.x input line or ask your own question.
View Discussion
Improve Article
Save Article
View Discussion
Improve Article
Save Article
For instance, in C we can do something like this:
One solution is to use raw_input[] two times.
Another solution is to use split[]
Note that we don’t have to explicitly specify split[‘ ‘] because split[] uses any whitespace characters as a delimiter as default.
One thing to note in the above Python code is, both x and y would be of string. We can convert them to int using another line
x, y = [int[x], int[y]] # We can also use list comprehension x, y = [int[x] for x in [x, y]]
Below is complete one line code to read two integer variables from standard input using split and list comprehension
x, y
=
[
int
[x]
for
x
in
input
[].split[]]
x, y
=
map
[
int
,
input
[].split[]]
This article is contributed by Abhishek Shukla. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above