Я не уверен, почему python продолжал выдавать сообщение об ошибке «цена не определена»

#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'))