i wrote this code i get an error say cost is not defined
print("============================================================\n"
" Welcome to Pizza Store \n"
"============================================================\n")
def welcomescreen():
print("1) Menu for the Pizza")
print("2) Order the Pizza")
print("3) Exit the program")
ch = input("Select from one of the above: ")
return ch
def main():
choice = welcomescreen()
while choice != '3':
# based on user choice add appropriate method
if choice == '1':
print("1. Pepperoni 9 AED\n2. Margherita 12 AED\n3. Vegetarian 15 AED\n4. Neapolitan 21 AED")
ask = input("Do you want to go back to the main menu? yes/no : \n").lower()
if ask == "yes":
main()
elif ask == "no":
break
elif choice == '2':
n=int(input("Enter the number of pizzas to be ordered: "))
kind=input("Enter the kind of Pizza: ")
size=input("Enter the size of Pizza\n(Large (50 AED),Medium (40 AED), Small (30 AED) : ")
if(size == "Large"):
cost_size=n*50
elif(size == "Medium"):
cost_size=n*40
elif(size == "Small"):
cost_size = n*30
if(kind == "Pepperoni"):
cost= n*10
pizza = 'Pepperoni'
elif(kind== "Margherita" ):
cost= n*15
pizza = "Margherita"
elif(kind == "Vegetarian" ):
cost= n*20
pizza = "Vegetarian"
elif(kind== "Neapolitan"):
cost= n*18
pizza = "Neapolitan"
d=input("Enter toppings: \n").split(" ")
extra=0
if(len(d)>3):
extra= n*3*(len(d)-3)
#final Bill
print("---------------------Your BILL-----------------------\n")
print("The Pizza kind :", kind)
print("The size :", size)
print("Number of pizzas : x", n)
print("Extra toppings :")
for i in d:
print(i,end=" ")
print("\n")
print("==========Breakdown of bill========== \n")
print("Bill for pizza : ", cost)
print("Bill for size : ",cost_size)
print("Bill for extra toppings: ",extra)
print("Total Bill : ",cost cost_size extra)
else:
print("Invalid choice. Try again.")
choice = welcomescreen()
print("Thank you! Have a nice day :)")
main()
the error i get is:
============================================================ Welcome to Pizza Store
- Menu for the Pizza
- Order the Pizza
- Exit the program Select from one of the above: 2 Enter the number of pizzas to be ordered: 1 Enter the kind of Pizza: pepperoni Enter the size of Pizza (Large (50 AED),Medium (40 AED), Small (30 AED) : large Enter toppings: pepperoni ---------------------Your BILL-----------------------
The Pizza kind : pepperoni The size : large Number of pizzas : x 1 Extra toppings : pepperoni
==========Breakdown of bill==========
Exception has occurred: UnboundLocalError
cannot access local variable 'cost' where it is not associated with a value
File "C:\Users\mandoof1\Downloads\Pizza part A.py", line 57, in main
print("Bill for pizza : ", cost)
File "C:\Users\mandoof1\Downloads\Pizza part A.py", line 68, in <module>
main()
what is supposed to happen is take the cost based on your input and give you the bill
CodePudding user response:
cost
is only defined if kind
is one of the three strings you check against in your if/elifs. Specifically, I think whats happening is that you're putting in 'pepperoni' but you really want to put in 'Pepperoni' (notice the capitalization)
To handle this more generally, you probably want to:
.lower()
the inputkind
and what you're checking against so you don't have to worry about capitalization- Have an
else
clause when checking kind, so that if the user puts in something unexpected you know about it. - Repeat these two fixes for the
size
input as well.