我正在制作一个上课的饭店制表程序,老师要求我们从原始程序中“模块化”它。但是,我不断收到错误消息”
TypeError:computeTotal()缺少1个必需的位置参数:“ drinks”)
我知道这是一个范围错误,但是由于该变量是全局变量,所以我不确定如何解决它。
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()
答案 0 :(得分:0)
您正在将参数与外部定义的值混淆。
这些参数可以命名为完全不同的名称,即使它们当前与其他参数相同,也并不意味着它们的值会自动传递给函数
例如
ifelse
您可以删除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)
,因为它什么也没做,只是让您重复输入两次