+ 1
Python
a,b=int(input()).split(',') print(a) print(b) I did this code to separate two inputs inputs its showing error why?
12 Answers
+ 9
Raine04, Ausgrindtube ,
a, b = int(input()).split(',')
> the code shown from the op fails, because it tries to split an integer coming from input() and int() conversion.
a, b = input().split(',')
> split() does not necessarily create a list. if we modify the code by removing the int() conversion, the code will work if exactly 2 input tokens are given.
a = input().split(',')
> so if we have to handle an unknown number of tokens, it is better to give only 1 variable that will be a list.
if we need to get the input as numerical values (input always return string values by default), they have to be coverted to the desired data format.
+ 7
as already mentioned, we can convert the input strings to numerical values. this can be done like:
a = list(map(int, input().split(',')))
or we can use a list comprehension like:
c = [int(num) for num in input().split(',')]
both version result in a list of integer numbers.
+ 5
In Python, you should split the input by calling the `split()` method on the input string directly, not on the result of `int(input())`.
+ 5
Per Bratthammar thats cool!
+ 4
Lets try to unpack this no pun intended.Â
a, b = input()
print(a)
print(b)
This code unpacks each character of the input string into a and b. For input 12, the output is:
1
2
Now consider:
a, b = int(input())
This code tries to:
1. Get a string from the user.
2. Convert it to a single integer.
3. Unpack this integer into a and b.
This is not possible because int( returns a single integer, resulting in a TypeError.
This code just wrong:
a, b = int(input()).split(",")
Simply put, split(",") can't be called on an integer this way.
Correct approach:
a, b = input().split(',')Â
a = int(a)
b = int(b)Â
print(a)
print(b)
1.creates a list. [âaâ,âbâ]
2. Unpack into a and b.
3.Convert a to int
4.convert b to int
Running out of space if you need other examples explained let me know. Iâll try my best!
+ 4
In Python, unpacking can be done directly from an iterator, like this generator:
>>> a, b = (int(x) for x in input().split(","))
or this map-object:
>>> a, b = map(int, input().split(','))
+ 3
The split method takes an input and creates a list, so the a,b wouldn't work.
Read here:
https://www.w3schools.com/JUMP_LINK__&&__python__&&__JUMP_LINK/ref_string_split.asp
+ 3
a,b = tuple(int(x) for x in input().split(","))
+ 3
a,b = input().split(',')
print(int(a))
print(int(b))
+ 1
You are trying to call the split() method on a number because you placed the input() function in the int() function
the correct way would be:
a, b = input().split(",")
print(a)
print(b)