为什么fun里面是*n,填n可以吗

img


def fun(*n):
s = 0
for i in n:
s += i
return s
print(fun(3,4,5,6))
lt = [1,2,3,4]
print(fun(*lt))

参数带一个 * 号,表示接收多个参数作为一个元组参数。

def fun(*n):
    print(n)

fun(1,2,3) #输出 (1 ,2 ,3)

列表、元组等变量名前加 * 号,表示作为多个参数传入函数。

lt=[0,1,2]
print(lt) #输出 [0, 1, 2]
print(*lt) #输出 0 1 2,相当于 print(0,1,2)

星号代表解包,这里表示不定数量的参数。简单说就是fun函数可以接收任意数量的参数,然后把所有参数放进元组n里,再进入函数处理。
只写n的话只表示一个参数,使用fun(3,4,5,6)调用会报错。