Recently I started studying about Python and I have come across one problem.
Suppose you are given 3 space separated integers, say 4 5 6
When I use input() method and take the input, it is showing me an error.
Traceback (most recent call last):
File "P_Try.py", line 1, in <module>
x= input();
File "<string>", line 1
4 5 6
^
SyntaxError: invalid syntax
I guess, since it is in one line, it is assuming it to be a string, but finds out the integer at the location 2 (index starting from 0). I tried alternative method that I took the input as a string using raw_input() method and and wherever I find a number, I cast it as int and append it to the list.
Is there any better way of accomplishing the task?
4 Answers 4
Function input() is interpreting your input as a Python code, I know, it's little odd. To get raw input (string containing user typed characters), just use raw_input() function instead.
1 Comment
If you have just started studying then use python3. input line of your code would work fine.
If you need to input 3 integers, you can use code like this:
x = input()
result = [ int(i) for i in x.split(' ')]
Comments
When you use input(), python tries to interpret the input, therefore getting confused when it finds a space.
You correctly suggested using raw_input().
inp = raw_input() # get raw input
lst = inp.split(" ") # split into list
num_lst = map(int, lst) # apply int() to all items
1 Comment
inp.split() and it will automatically do it for spaces.try this:
a = []
a += map(int,raw_input("Enter the integers\n").split(" "))
print a