[python] Taking multiple inputs from user in python

I know how to take a single input from user in python 2.5:

raw_input("enter 1st number")

This opens up one input screen and takes in the first number. If I want to take a second input I need to repeat the same command and that opens up in another dialogue box. How can I take two or more inputs together in the same dialogue box that opens such that:

Enter 1st number:................
enter second number:.............

This question is related to python

The answer is


In Python 2, you can input multiple values comma separately (as jcfollower mention in his solution). But if you want to do it explicitly, you can proceed in following way. I am taking multiple inputs from users using a for loop and keeping them in items list by splitting with ','.

items= [x for x in raw_input("Enter your numbers comma separated: ").split(',')]

print items

You can read multiple inputs in Python 3.x by using below code which splits input string and converts into the integer and values are printed

user_input = input("Enter Numbers\n").split(',')
#strip is used to remove the white space. Not mandatory
all_numbers = [int(x.strip()) for x in user_input]
for i in all_numbers:
    print(i)

How about making the input a list. Then you may use standard list operations.

a=list(input("Enter the numbers"))

How about something like this?

user_input = raw_input("Enter three numbers separated by commas: ")

input_list = user_input.split(',')
numbers = [float(x.strip()) for x in input_list]

(You would probably want some error handling too)


This might prove useful:

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

You can then use 'a' and 'b' separately.


Split function will split the input data according to whitespace.

data = input().split()
name=data[0]
id=data[1]
marks = list(map(datatype, data[2:]))

name will get first column, id will contain second column and marks will be a list which will contain data from third column to last column.


You could use the below to take multiple inputs separated by a keyword

a,b,c=raw_input("Please enter the age of 3 people in one line using commas\n").split(',')

List_of_input=list(map(int,input (). split ()))
print(List_of_input)

It's for Python3.


Try this:

print ("Enter the Five Numbers with Comma")

k=[x for x in input("Enter Number:").split(',')]

for l in k:
    print (l)

My first impression was that you were wanting a looping command-prompt with looping user-input inside of that looping command-prompt. (Nested user-input.) Maybe it's not what you wanted, but I already wrote this answer before I realized that. So, I'm going to post it in case other people (or even you) find it useful.

You just need nested loops with an input statement at each loop's level.

For instance,

data=""
while 1:
    data=raw_input("Command: ")
    if data in ("test", "experiment", "try"):
        data2=""
        while data2=="":
            data2=raw_input("Which test? ")
        if data2=="chemical":
            print("You chose a chemical test.")
        else:
            print("We don't have any " + data2 + " tests.")
    elif data=="quit":
        break
    else:
        pass

You can try this.

import sys

for line in sys.stdin:
    j= int(line[0])
    e= float(line[1])
    t= str(line[2])

For details, please review,

https://en.wikibooks.org/wiki/Python_Programming/Input_and_Output#Standard_File_Objects


Python and all other imperative programming languages execute one command after another. Therefore, you can just write:

first  = raw_input('Enter 1st number: ')
second = raw_input('Enter second number: ')

Then, you can operate on the variables first and second. For example, you can convert the strings stored in them to integers and multiply them:

product = int(first) * int(second)
print('The product of the two is ' + str(product))

Or if you are collecting many numbers, use a loop

num = []
for i in xrange(1, 10):
    num.append(raw_input('Enter the %s number: '))

print num

# the more input you want to add variable accordingly
x,y,z=input("enter the numbers: ").split( ) 
#for printing 
print("value of x: ",x)
print("value of y: ",y)
print("value of z: ",z)

#for multiple inputs    
#using list, map
#split seperates values by ( )single space in this case

x=list(map(int,input("enter the numbers: ").split( )))

#we will get list of our desired elements 

print("print list: ",x)

hope you got your answer :)


The best way to practice by using a single liner,
Syntax:

list(map(inputType, input("Enter").split(",")))

Taking multiple integer inputs:

   list(map(int, input('Enter: ').split(',')))

enter image description here

Taking multiple Float inputs:

list(map(float, input('Enter: ').split(',')))

enter image description here

Taking multiple String inputs:

list(map(str, input('Enter: ').split(',')))

enter image description here


  1. a, b, c = input().split() # for space seperated inputs
  2. a, b, c = input().split(",") # for comma seperated inputs