如图,定义函数里的函数没有参数,想知道什么情况下函数里有参数,什么情况下没有???有点迷糊了
当你需要外部给函数提供某些数据的时候,可以通过参数传递
不是什么时候用什么时候不用,完全看业务场景,就那你这个而言就有两种方式,第一个就是内部通过输入来制造数据,第二个就是通过外部传过来的值作为计算数据
你也可以这样写,就是将下面这两个输入赋值的变量变成从外部传过来的参数也可以,这样的话调用这个函数,括号里面就要写两个值
当你需要从外部传入一个变量给函数内部的时候,就需要参数。有没有参数,就看你是否需要在调用函数时传入变量,在函数执行的时候是否需要外部的数据。就像定义一个函数pri,打印“你好”,有两种方式:
def pri(): # 方法1
print('你好')
pri() # 这时候你不需要传入参数
def pri(text): # 方法2
print(text)
pri('你好') # 这时需要传入参数
方法1不需要传入参数,但你就不能指定打印的内容了。方法2需要传入参数,指定打印的内容。这样子想打什么就打什么了。方法二中函数的执行就是需要外部的数据。一般来说,传入参数的话,函数的使用能够更加灵活,应用更加广泛,而不只应用于一种单一的情况。
像你那种情况,你既可以像上面那样,也可以传入两个费用:
def cost(utilities, foodcost):
global variable_cost
variable_cost = utilities + food_cost
print('本月的总成本是' + str(variable_cost))
def sum_cost():
...
cost(int(input('水电费用')), int(input('食材费用')))
sum_cost()
这样子在调用cost函数的时候,计算的不一定必须是水电和食材费用,你可以传入别的费用比如房租、旅行费用等,它都能给你计算出来。这就是传入参数的一大作用。
是否需要传递参数,取决于你的实际的情况。比如求和的sum函数,作用就是为了快速求和,你不能在函数外专门为变量赋值,再在函数内部去求这些变量的和。万一有不同的变量需要求和呢?这时就很麻烦。你必须传入参数,依靠外部的数据来完成函数的执行,完成它想要的功能。你的那个虽然能满足一定的需要,但只能对单一的数据完成单一的功能,如果项目大一点,函数的应用的范围更广泛一点,它就不能满足需求了。如果你还需要计算别的费用的和,就需要再定义一个函数,这是不是很麻烦?所以我们定义函数应考虑到多种情况,必须灵活运用参数,使他能应用到多种情况去。