在主要NameError中:名称''未定义

时间:2019-10-08 19:53:57

标签: python python-3.x

我想在main中调用一个函数。但它一直说,其中一个论点未在main中定义。该参数来自另一个函数。剂量主要获得访问?

def main():
  getMenuInput()
  getQuantityInput(maxQuantity)

def getMenuInput():
  while True:
    try:
      order = input('Select a letter from the menu: ')
    except ValueError:
        print ('Sorry, please try again')
        continue
    else:
        break


  if order == 'a': 
     itemName = 'Grilled salmon'
     itemPrice = 26.99
     maxQuantity = 50
     return itemName, itemPrice, maxQuantity
  elif order == 'b':
    itemName = 'New York Steak'
    itemPrice = 18.99
    maxQuantity = 50
    return itemName, itemPrice, maxQuantity
  elif order == 'c':
    itemName = 'Roast Chicken'
    itemPrice = 12.99
    maxQuantity = 50
    return itemName, itemPrice, maxQuantity     
  elif order == 'd':
    itemName = 'Salad'
    itemPrice = 5.99
    maxQuantity = 200
    return itemName, itemPrice, maxQuantity   
  elif order == 'e':
    itemName = 'Soup'
    itemPrice = 7.99
    maxQuantity = 200
    return itemName, itemPrice, maxQuantity   
  elif order == 'f':
    itemName = 'Hamburger'
    itemPrice = 4.99
    maxQuantity = 200
    return itemName, itemPrice, maxQuantity   
  elif order == 'g':
    itemName = 'Soft drink'
    itemPrice = 1.29
    maxQuantity = 200
    return itemName, itemPrice, maxQuantity   
  elif order == 'h':
    itemName = 'Tea'
    itemPrice = 1.5
    maxQuantity = 200
    return itemName, itemPrice, maxQuantity 
  elif order == 'i':
    itemName = 'Orange juice'
    itemPrice = 2.5
    maxQuantity = 200
    return itemName, itemPrice, maxQuantity
  else:
      order = input('Invalid menu item. Enter another menu item: ')


def getQuantityInput(maxQuantity):

     while True:        
         try:
             value = int(input('Enter the Quantity: '))
         except ValueError:
             print("Sorry, your response must not be negative.")
         continue

         if value < 0 and value > maxQuantity:
             value = int(input('Quantity cannot be negative. Enter another quantity: ')) 
             continue
         else:
             break
         return value

错误消息如下所示:

Traceback (most recent call last):
  File "C:/Users/Desktop/python/test1.py", line 114, in <module>
    main()
  File "C:/Users/Desktop/python/test1.py", line 3, in main
    getQuantityInput(maxQuantity)
NameError: name 'maxQuantity' is not defined

1 个答案:

答案 0 :(得分:0)

width

您将必须将返回值存储在变量中,然后在调用下一个函数def main(): itemName, itemPrice, maxQuantity = getMenuInput() getQuantityInput(maxQuantity)

时将其传递