I'm writing a program in Python where I would like to do the following:
I ask for a certain input by writing
x = int(input())
Now, given the number 'N' I assign to this input, I would to then get N lines asking for new input. For example, if I give as input the number 3, I would like the program to ask for 3 new inputs and assign them to certain letters:
x = int(input())
3
Then
a = input()
b = input()
c = input()
Any idea on how to do this?
Assigning them to certain variables with an unknown amount of inputs is not something you want. What you can do is make a list with the inputs:
x = int(input()) # the amount of numbers
input_list = []
for i in range(x):
input_list.append(input())
print input_list
Now you can index the input_list to get the n-th input:
print input_list[0]
This will return the first input as the indexing in Python starts from 0
I'd recommend to follow previous answer, but if you care about giving meaningful names to the user's inputs you can do the following:
import sys
current_module = sys.modules[__name__] # you will have an access to module instance
print("Define number of further inputs:")
no = input()
for x in range(int(no)):
print("Input value: ")
_var = input()
setattr(this_module, 'var_%s' % _var, _var)
After that, you can access those variables through the next code:
globals()[name_of_the_variable]
where name_of_the_variable is 'var_' plus user's input value, for example
Define number of further inputs: 5
var_5 = globals()['var_5']
Hope that would help you.