Help with python code

Rob Gaddi rgaddi at highlandtechnology.invalid
Tue Mar 29 17:19:05 EDT 2016


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.



More information about the Python-list mailing list