主函数使变量未定义?



当我注释掉def main()和main()代码按预期运行时,但是当函数调用在主函数totalOfItems下变得未定义时,有人知道为什么吗?

import math 
def shoppingTotal(numItem):
totalOfItems = 0
for x in range(numItem):
totalOfItems += int(input('Whats the cost: '))
print(totalOfItems)
return(totalOfItems)
def amountTax(total):
totalTax = (totalOfItems * 1.13) - totalOfItems
print(totalTax)
return(totalTax)
def totalBill(amount, tax):
finalBill = totalTax + totalOfItems
print(finalBill)
return(finalBill)

def greeting():
print('1. Mangoes $5')
print('2. Meat $3')
print('3. Juice $7')
print('4. Banana $2')
def main():
greeting()
numItem = int(input('How many items did you buy: '))
totalOfItems = shoppingTotal(numItem)
total = totalOfItems
totalTax = amountTax(total)
totalBill(amount=totalOfItems,tax=totalTax)

main()

这是因为变量" totalofitem "one_answers";totalTax"范围仅限于主要功能。为了避免这个问题,上面提到的变量将被全局定义,您可以将主函数编辑为类似

的内容。
greeting()
global totalOfItems 
global totalTax

numItem = int(input('How many items did you buy: '))
totalOfItems = shoppingTotal(numItem)
total = totalOfItems
totalTax = amountTax(total)
totalBill(amount=totalOfItems,tax=totalTax)

,它应该允许其他函数访问变量" totalofitem "one_answers";totalTax"因为它们的作用域现在是全局的,每个函数都可以使用。

最新更新