okdk wrote: > This is my code > import random > import time > > pizzatype = [3.50,4.20,5.20,5.80,5.60] > drinktype = [0.90,0.80,0.90] > topping = [0.50,0.50,0.50,0.50] > > def Total_cost_cal (pt ,dt ,t): > total = pt + dt + t > return total > > print ("Welcome to Pizza Shed!") > > order = raw_input ("\n\nPLEASE PRESS ENTER TO ORDER." ) > > tablenum = input ("Enter table number from 1-25 \n ") > while tablenum>25 or tablenum <=0: > tablenum = input ("Enter the correct table number, there are only 25 > tables ") > > #Pizza menu with prices > > print ("---------------------") > > print ("Let me help you with your order!") > > print ("---------------------") > > order = raw_input ("\n\nPLEASE PRESS ENTER TO SELECT YOUR PIZZA." ) > > print ("Menu") > > print ( > "1 = cheese and tomato: 3.50, " > "2 = ham and pineapple: 4.20, " > "3 = vegetarian: 5.20, " > "4 = meat feast: 5.80, " > "5 = seafood: 5.60 " ) > > menu = input("Enter the type of pizza that you want to order from 1-5 \n") > while menu>5 or menu <=0: > menu = input ("Enter the right number ") > pizza_cost = pizzatype[menu] > > print ("------------------") > > pizza_amount = input ("Enter the amount of Pizzas that you want to order ") > while pizza_amount > 10 or pizza_amount <=0: > pizza_amount = input ("Maximum amount is 10, Please enter again ") > > print ("--------------------") > > #base > > print ("Base") > > print ( > "1 = thin and crispy," > "2 = traditional" ) > > base = input ("Select a base from 1-2 \n") > while base>2 or base<=0: > base = input ("There are only 2 types, Please enter again ") > > print ("-------------------") > > #extra toppings > > print ("Extra Toppings") > > toppings = input ("Enter a number for your choice of extra topping \n Enter 1 > for extra cheese \n Enter 2 for extra pepperoni \n Enter 3 for extra > pineapple \n Enter 4 for extra peppers \n" ) > while toppings >4 or toppings < 0: > toppings = input ("There are only 4 types of extra toppings, Please try > again " ) > topping_cost = topping[toppings] > > print ("-------------------------") > > #drink > > print ("Drink") > > print ( > "1 = Cola: 0.90, " > "2 = Lemonande: 0.80, " > "3 = Fizzy Orange: 0.90 " > ) > > drink = input ("Enter a number for your choice of drinks " ) > while drink>3 or drink<0: > drink = input ("Choices start from 0 to 3 " ) > drink_cost = drinktype[drink] > drink_amount = input ("Enter the amount of drinks") > while drink_amount >10 or drink_amount<0: > drink_amount = input (" You can only have upto 10 drinks, Please try > again") > > > print ("--------------------------------") > > pizzatotal = pizza_cost*pizza_amount > drinktotal = drink_cost*drink_amount > > total_cost = total_cost_cal(pizzatotal, drinktotal, topping_cost) > > print ("--------------------------------") > print ("Calculating bill") > print ("--------------------------------") > print ("--------------------------------") > > print ("Thank You for ordering at Pizza Shed! ") > > > Howeve, it doesnt seem to be working. It doesnt calculate the bill. I dont > know what to do, as I'm less than average at this. > it comes up as IndexError: list index out of range at line42 > > Please help
Don't know which one is line 42; but I'd bet your problem is there. As a rough guess, it might be the line that says: pizza_cost = pizzatype[menu] You're bounding that to the range 1-5. A Python list of length 5 has indices 0-4. But the error message is telling you everything you need to know; you're trying to get a list index that's out of range in line 42. Find line 42, figure out what index you're asking it for, and you'll have your answer. If you don't have an editor that shows you line numbers then your editor is fundamentally terrible and you should not use it (I personally like Notepad++ for Windows or Geany for Linux). -- Rob Gaddi, Highland Technology -- www.highlandtechnology.com Email address domain is currently out of order. See above to fix. -- https://mail.python.org/mailman/listinfo/python-list