Python 函数调用缺少必需的位置参数:

Python 函数调用缺少必需的位置参数:,python,python-3.x,variables,scope,Python,Python 3.x,Variables,Scope,我正在为课堂制作一个餐馆标签程序,老师让我们从原来的“模块化”它。然而,我不断地得到错误 TypeError:computeTotal缺少1个必需的位置参数:“饮料” 我知道这是一个范围错误,但我不确定如何修复它,因为该变量是一个全局变量 def getdrinks(): drinks = float(input('dollar amount for drinks: $')) return drinks def getapps(): apps = float(input

我正在为课堂制作一个餐馆标签程序,老师让我们从原来的“模块化”它。然而,我不断地得到错误

TypeError:computeTotal缺少1个必需的位置参数:“饮料”

我知道这是一个范围错误,但我不确定如何修复它,因为该变量是一个全局变量

def getdrinks():
    drinks = float(input('dollar amount for drinks: $'))
    return drinks

def getapps():
    apps = float(input('dollar amount for apps: $'))
    return apps

def getMC():
    mainCourse = float(input('dollar amount for main course: $'))
    return mainCourse

def getdessert():
    dessert = float(input('dollar amount for desserts: $'))
    return dessert

def getPurchaseAmts():
    getdrinks()
    getapps()
    getMC()
    getdessert()
getPurchaseAmts()

def computeTotal(drinks, apps, mainCourse, dessert):
    Total = (drinks + apps + mainCourse + dessert)
    print ("Bill total (before tax and preTip): ",Total)
computeTotal()    

drinks = getdrinks()
apps = getapps()
mainCourse = getMC()
dessert = getdessert()

您将参数与外部定义的值混淆

这些参数可以被命名为完全不同的东西,尽管它们当前与其他参数相同,但这并不意味着它们的值会自动传递到函数中

比如说,

def computeTotal(a, b, c, d):
    total = (a + b + c + d)
    print ("Bill total (before tax and preTip): ",total)


drinks = getdrinks()
apps = getapps()
mainCourse = getMC()
dessert = getdessert()

# this must be last, and you need to pass values into the function 
computeTotal(drinks, apps, mainCourse, dessert)

您可以删除getPurchaseAmts,因为它除了让您重复输入两次之外什么都不做

请不要发布代码的图像,更糟糕的是,不要发布图像链接。然后将问题复制并粘贴到其中。另外,标记一种语言:。很抱歉,我已经更改了它。您为方法def computeTotal定义了多少个参数?你总共给了多少?现在,请重新阅读您的错误。这与范围无关