#python #nameerror
#python #ошибка имени
Вопрос:
Моя главная проблема здесь в том, что я не уверен, почему python продолжал возвращать ошибку «ошибка имени: имя «цена» не определено». Ошибка произошла в строке 53 «upsize1 = computeUpsizetea (upsize,price)»
(Примечание: —> Для кодирования можно просто проигнорировать часть о «Проблеме …»)
Я пропустил какой-либо код, который должен был быть в самом кодировании?
Я не знаю, как на самом деле определить цену.
Я попытался изменить цену на значение, которое было скопировано из строки 32 (‘def computeUpsizetea (upsize,value):’), но затем python выдаст другую ошибку ‘Ошибка имени: имя ‘значение’ не определено’.
Кстати, я только начал изучать, как использовать Python, поэтому я попытался найти другой тип решения, который был в Интернете, но все еще не мог решить. Кто-нибудь может помочь мне разобраться, большое спасибо.
Это мой код:
# Create function to display menu
def showMenu():
print("*---Standard size Bubble Tea----------------------------*")
print("1. Milk Tea $3.80")
print("2. Jasmine Green Tea $3.50")
print("3. Red Plum Tea $2.50")
print("4. Earl Grey Milk Tea $5.30")
print("5. Cranberry Fruit Tea $4.50")
print("*-------------------------------------------------------*")
print("Additional 35% for upsize to large cup")
print("Additional 50 cents to add white pearl")
print("Delivery is $4. If the order is more than $30, it is free")
print("*-------------------------------------------------------*")
# Create function to get the price of customer order
def getPrice(item):
if item =="1" :
return 3.80
elif item =="2" :
return 3.50
elif item == "3" :
return 2.50
elif item == "4" :
return 5.30
elif item == "5" :
return 4.50
else:
print("Incorrect item, please select again!")
return 0
# Create function to compute upsize tea
def computeUpsizetea(upsize,value):
if upsize.upper() == 'Y':
extra = 0.35 * value
else:
extra = 0
return extra
# Create function to compute adding of peal
def computeAddpeal(addpeal):
if addpeal.upper() == 'Y':
pealextra = 0.5
else:
pealextra = 0
return pealextra
showMenu()
cusOrder = input("Select your tea:")
upsize = input("Upsize to large cup? (Y/N):")
addpeal = input("Add peals? (Y/N):")
orderQty = float(input("Enter your order quantity:"))
upsize1 = computeUpsizetea(upsize,price)
addpeal1 = computeAddpeal(addpeal)
totalupsize = price upsize1
totalpeal = totalupsize addpeal1
purchaseAmt = totalpeal * orderQty
# Create function to compute delivery fee
def deliveryFee(purchaseAmt):
if purchaseAmt > 30:
deliver = 0
else:
deliver = 4
return deliver
totaldeliver = deliveryFee(purchaseAmt)
deliverycharge = totaldeliver purchaseAmt
#Create next item
print("Total Sales: $", format(purchaseAmt,'.2f'))
#Problem 3: How to loop this part where by can return back to the selection part?
nextItem1 = input("Next item? (Y/N):")
for nextItem in nextItem1:
if nextItem1.upper() == "Y":
next(showMenu())
else:
print("Delivery Fee: $", format(totaldeliver,'.2f'))
print("Please pay: $", format(deliverycharge,'.2f'))
Комментарии:
1. Вы впервые прошли
price
,upsize1
но оно не определено до этого.
Ответ №1:
upsize1 = computeUpsizetea(upsize,price)
Это показывает ошибку, потому что вы не инициализировали переменную price;
Используйте это:
price = int(input("Enter price "))
или используйте свою пользовательскую цену
весь код:
# Create function to display menu
def showMenu():
print("*---Standard size Bubble Tea----------------------------*")
print("1. Milk Tea $3.80")
print("2. Jasmine Green Tea $3.50")
print("3. Red Plum Tea $2.50")
print("4. Earl Grey Milk Tea $5.30")
print("5. Cranberry Fruit Tea $4.50")
print("*-------------------------------------------------------*")
print("Additional 35% for upsize to large cup")
print("Additional 50 cents to add white pearl")
print("Delivery is $4. If the order is more than $30, it is free")
print("*-------------------------------------------------------*")
# Create function to get the price of customer order
def getPrice(item):
if item =="1" :
return 3.80
elif item =="2" :
return 3.50
elif item == "3" :
return 2.50
elif item == "4" :
return 5.30
elif item == "5" :
return 4.50
else:
print("Incorrect item, please select again!")
return 0
# Create function to compute upsize tea
def computeUpsizetea(upsize,value):
if upsize.upper() == 'Y':
extra = 0.35 * value
else:
extra = 0
return extra
# Create function to compute adding of peal
def computeAddpeal(addpeal):
if addpeal.upper() == 'Y':
pealextra = 0.5
else:
pealextra = 0
return pealextra
showMenu()
cusOrder = input("Select your tea:")
upsize = input("Upsize to large cup? (Y/N):")
addpeal = input("Add peals? (Y/N):")
orderQty = float(input("Enter your order quantity:"))
price = int(input("Enter price "))
upsize1 = computeUpsizetea(upsize,price)
addpeal1 = computeAddpeal(addpeal)
totalupsize = price upsize1
totalpeal = totalupsize addpeal1
purchaseAmt = totalpeal * orderQty
# Create function to compute delivery fee
def deliveryFee(purchaseAmt):
if purchaseAmt > 30:
deliver = 0
else:
deliver = 4
return deliver
totaldeliver = deliveryFee(purchaseAmt)
deliverycharge = totaldeliver purchaseAmt
#Create next item
print("Total Sales: $", format(purchaseAmt,'.2f'))
#Problem 3: How to loop this part where by can return back to the selection part?
nextItem1 = input("Next item? (Y/N):")
for nextItem in nextItem1:
if nextItem1.upper() == "Y":
next(showMenu())
else:
print("Delivery Fee: $", format(totaldeliver,'.2f'))
print("Please pay: $", format(deliverycharge,'.2f'))