[英]why do i keep getting this python error 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:我得到的错误是:
The Pizza kind: pepperoni The size: large Number of pizzas: x 1 Extra toppings: pepperoni披萨种类:意大利辣香肠尺寸:大披萨数量:x 1 额外配料:意大利辣香肠
==========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应该发生的是根据您的输入计算成本并给您账单
cost
is only defined if kind
is one of the three strings you check against in your if/elifs.只有当
kind
是您在 if/elifs 中检查的三个字符串之一时,才会定义cost
。 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 input kind
and what you're checking against so you don't have to worry about capitalization .lower()
输入kind
和你要检查的内容,所以你不必担心大写else
clause when checking kind, so that if the user puts in something unexpected you know about it.else
子句,这样如果用户输入了意想不到的东西,你就会知道。size
input as well.size
输入也重复这两个修复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.