Reputation:
I am having a problem where the user enters various codes , into 1 variable and then i want to split these input to make it into a list.However , I have realized that my variable only takes in the last input meaning the list comes out with only one code and not several. How do I make a variable store multiple inputs ?
while True:
itemsneeded = input("How many items do you need?")
if itemsneeded.isnumeric() and int(itemsneeded) <= 5:
break
GTIN = ''
count = 0
while count < int(itemsneeded):
GTIN = (input('Please enter all GTIN-8 for all items'))
if GTIN.isnumeric() and len(GTIN) == 8:
Num0 = int(GTIN[0]) * 3
Num1 = int(GTIN[1])
Num2 = int(GTIN[2]) * 3
Num3 = int(GTIN[3])
Num4 = int(GTIN[4]) * 3
Num5 = int(GTIN[5])
Num6 = int(GTIN[6]) * 3
Num7 = int(GTIN[7])
total2 = (Num0 + Num1 + Num2 + Num3 + Num4 + Num5 + Num6 + Num7)
if total2 % 10 == 0:
print(GTIN)
if GTIN in open('read_it.txt').read():
print('entered GTIN is valid')
else:
print('The code entered is invalid')
print('Please renter this code')
count += 1
else:
print("The entered GTIN-8 codes are incorrect")
print(GTIN)
lst = GTIN.split()
print(lst)
And I can not use this (Two values from one input in python?) becuase I do not know how many items the user wants , the users input can vary from 1 item to 5.
Upvotes: 0
Views: 582
Reputation: 5384
Create an empty list and then use list.append
inside you loop. What this will do is add each new entry to the end of your list.
GTIN=''
#count=0
items = [] # replaces count = 0
#while count<int(itemsneeded):
while len(items) < int(itemsneeded): # replaces other while condition
...
...
#count += 1
items.append(GTIN) # replaces count += 1
...
print(items)
You should also avoild using list
as the variable name as you overwrite the built-in list method.
Also your code doesn't quite work for invalid inputs. If the code they enter is incorrect then it still increments as if a valid item has been added. You should move items.append(GTIN)
to inside the if statement where you check the GTIN is valid.
Upvotes: 1
Reputation: 422
Perhaps it will help you:
nums = input().split()
int_nums = [ int(x) for x in nums ]
Upvotes: 0