I coded a program that is meant to repeat itself over and over until the to_continue loop is broken by the input “N”. However, it didn’t seem to work.
phone_or_tablet=int(input("Phone or Tablet 1/2 "))
while phone_or_tablet not in [1,2]:
print("Error")
phone_or_tablet=int(input("Phone or Tablet 1/2 "))
else:
if phone_or_tablet == 1:
description=int(input("Compact, Clam Shell, Robo5-in, Robo6-in, Y-Standard or Y-Deluxe? 1/2/3/4/5/6 "))
while description not in range (1,7,1):
print("Error")
description=int(input("Compact, Clam Shell, Robo5-in, Robo6-in, Y-Standard or Y-Deluxe? 1/2/3/4/5/6 "))
#some other programs (scroll down for the whole program)
print(sum(price))
to_continue=input("Continue? Y/N ")
while to_continue.capitalize() == "Y":
phone_or_tablet=int(input("Phone or Tablet 1/2 "))
Output:
Phone or Tablet 1/2 1 Compact, Clam Shell, Robo5-in, Robo6-in, Y-Standard or Y-Deluxe? 1/2/3/4/5/6 1 #some other stuff 49.98 Continue? Y/N Y Phone or Tablet 1/2 1 Phone or Tablet 1/2
whilst I meant for it to output
Phone or Tablet 1/2 1 Compact, Clam Shell, Robo5-in, Robo6-in, Y-Standard or Y-Deluxe? 1/2/3/4/5/6 1 #some other stuff 49.98 Continue? Y/N Y Phone or Tablet 1/2 1 Compact, Clam Shell, Robo5-in, Robo6-in, Y-Standard or Y-Deluxe? 1/2/3/4/5/6 1
Full program if that’s helpful:
typelst=["Compact", "Clam Shell", "Robo5-in", "Robo6-in", "Y-Standard", "Y-Deluxe"]
pricelst=[29.99,49.99,199.99,499.99,549.99,649.99]
typelst2=["Robo-8in", "Robo-10in", "Y-standard", "Y-deluxe"]
pricelst2=[149.99,299.99,499.99,599.99]
price=[]
phone_or_tablet=int(input("Phone or Tablet 1/2 "))
while phone_or_tablet not in [1,2]:
print("Error")
phone_or_tablet=int(input("Phone or Tablet 1/2 "))
else:
if phone_or_tablet == 1:
description=int(input("Compact, Clam Shell, Robo5-in, Robo6-in, Y-Standard or Y-Deluxe? 1/2/3/4/5/6 "))
while description not in range (1,7,1):
print("Error")
description=int(input("Compact, Clam Shell, Robo5-in, Robo6-in, Y-Standard or Y-Deluxe? 1/2/3/4/5/6 "))
else:
price.append(pricelst[description-1])
sim_card=int(input("SIM card free or PAYG? 1/2 "))
while sim_card not in range (1,3,1):
print("Error")
sim_card=input(int("SIM card none, free or PAYG? 0/1/2 "))
else:
if sim_card == 2:
price.append(9.99)
elif phone_or_tablet == 2:
description=int(input("Robo-8in, Robo-10in, Y-standard or Y-deluxe? 1/2/3/4 "))
while description not in range (1,5,1):
print("Error")
description=int(input("Robo-8in, Robo-10in, Y-standard or Y-deluxe? 1/2/3/4 "))
else:
price.append(pricelst2[description-1])
case=int(input("Standard or Luxury case? 1/2 "))
while case not in range (0,3,1):
print("Error")
case=int(input("Standard or Luxury case? 1/2 "))
else:
if case==2:
price.append(50)
charger=int(input("Car, Home charger or both? 1/2/3 "))
while charger not in range (0,4,1):
print("Error")
charger=int(input("Car, Home charger or both? 1/2/3 "))
else:
if charger==1:
price.append(19.99)
elif charger==2:
price.append(15.99)
print(price)
else:
price.append(35.98)
print(sum(price))
to_continue=input("Continue? Y/N ")
while to_continue.capitalize() == "Y":
phone_or_tablet=int(input("Phone or Tablet 1/2 "))
Any help would be deeply appreciated :) Please comment if any of the explanations are unclear or if you need further details
Advertisement
Answer
You have to wrap the whole program logic in one loop.
while True:
typelst=["Compact", "Clam Shell", "Robo5-in", "Robo6-in", "Y-Standard", "Y-Deluxe"]
pricelst=[29.99,49.99,199.99,499.99,549.99,649.99]
typelst2=["Robo-8in", "Robo-10in", "Y-standard", "Y-deluxe"]
pricelst2=[149.99,299.99,499.99,599.99]
price=[]
phone_or_tablet=int(input("Phone or Tablet 1/2 "))
while phone_or_tablet not in [1,2]:
print("Error")
phone_or_tablet=int(input("Phone or Tablet 1/2 "))
else:
if phone_or_tablet == 1:
description=int(input("Compact, Clam Shell, Robo5-in, Robo6-in, Y-Standard or Y-Deluxe? 1/2/3/4/5/6 "))
while description not in range (1,7,1):
print("Error")
description=int(input("Compact, Clam Shell, Robo5-in, Robo6-in, Y-Standard or Y-Deluxe? 1/2/3/4/5/6 "))
else:
price.append(pricelst[description-1])
sim_card=int(input("SIM card free or PAYG? 1/2 "))
while sim_card not in range (1,3,1):
print("Error")
sim_card=input(int("SIM card none, free or PAYG? 0/1/2 "))
else:
if sim_card == 2:
price.append(9.99)
elif phone_or_tablet == 2:
description=int(input("Robo-8in, Robo-10in, Y-standard or Y-deluxe? 1/2/3/4 "))
while description not in range (1,5,1):
print("Error")
description=int(input("Robo-8in, Robo-10in, Y-standard or Y-deluxe? 1/2/3/4 "))
else:
price.append(pricelst2[description-1])
case=int(input("Standard or Luxury case? 1/2 "))
while case not in range (0,3,1):
print("Error")
case=int(input("Standard or Luxury case? 1/2 "))
else:
if case==2:
price.append(50)
charger=int(input("Car, Home charger or both? 1/2/3 "))
while charger not in range (0,4,1):
print("Error")
charger=int(input("Car, Home charger or both? 1/2/3 "))
else:
if charger==1:
price.append(19.99)
elif charger==2:
price.append(15.99)
print(price)
else:
price.append(35.98)
print(sum(price))
to_continue=input("Continue? Y/N ")
if to_continue.capitalize() == "N":
break