我试图根据家庭收入和子女数量给出退还金额
当我运行时,它说:
回溯(最近一次调用最后一次):第24行,在main()第5行,主要打印(“返回金额:”,金额(已退回))NameError:未定义全局名称“返回”>> > -
def main():
income = int(input("Please enter the annual household income: "))
children = int(input("Please enter the number of children for each applicant: "))
print("Amount returned: ", amount(returned))
def amount (returned):
if income >= 30000 and income < 40000 and children >= 3:
amnt = (1000 * children)
return amnt
elif income >= 20000 and income < 30000 and children >= 2:
a = (1500 * children)
return a
elif income < 20000 :
r = (2000 * children)
return r
else:
return "error"
main()
答案 0 :(得分:2)
执行此操作时:
amount(returned)
...您正在调用函数amount
,并且给赋予变量returned
的值。在您的代码中,您尚未定义变量returned
,这就是您收到错误的原因。
写下你要做的事情的正确方法是传入income
和children
- 它们成为函数的输入 - 然后打印该函数返回的内容:
print("Amount returned: ", amount(income, children))
这意味着您必须重新定义您的功能,以接受income
和children
作为输入:
def amount(income, children):
...
如果你真的需要一个名为returned
的变量,你可以将它设置为函数的结果:
returned = amount(income, children)
print("Amount returned: ", returned)
答案 1 :(得分:0)
@ user3341166我虽然你正在学习编码,但你有概念错误,照顾好你的问题,否则你会对这个网站感到失望,请记住问聪明的问题,我的意思是,阅读谷歌,每当你得到一个错误,粘贴错误,但首先,读取错误,该描述的一些时间是解决方案
你的错误是关于函数的定义,当你定义一个函数,你也定义输入变量,或者没有输入,在你的情况下,你需要两个输入来传递收入和子,否则,你的函数将没有任何关于工作的想法。
如果你检查你的函数,你正在使用两个变量“income and children”,但是这个var是在函数之外定义的,你需要一种方法将它们传递给函数,然后你需要创建函数参数。
我希望你能理解我的小介绍。祝你好运
def main():
income = int(input("Please enter the annual household income: "))
children = int(input("Please enter the number of children for each applicant: "))
print("Amount returned: ", amount(income, children))
def amount (income, children):
if income >= 30000 and income < 40000 and children >= 3:
amnt = (1000 * children)
return amnt
elif income >= 20000 and income < 30000 and children >= 2:
a = (1500 * children)
return a
elif income < 20000 :
r = (2000 * children)
return r
else:
return "error"
if __name__ == '__main__':
main()