定义函数时候,需要处理的参数的个数 是不确定的,需要使用多值参数。
参数名前 增加 一个*,可以接受 元组
参数明前 增加 两个*, 可以接受 字典
习惯性命名 为
*args 存放元组参数
**kwargs 存放字典参数
def demo(num, *nums, **person):
print(num)
print(nums)
print(person)
# demo(1)
demo(1, 2, 3, 4, 5, name='小喵')
1
(2, 3, 4, 5)
{‘name’: ‘小喵’}
多值参数 经常会出现在大牛的框架里面
def sum(*args):
num = 0
print(args)
for n in args:
num += n
return num
result = sum(1, 2, 3)
print(result)
元组和字典的拆包(1, 2, 3)
6
在元组变量前 增加 一个*
在字典变量前 增加 两个**
拆包语法目的: 简化 元组 和 字典元素的调用
递归函数内部 自己调用自己
特点: 代码相同,针对参数不同,处理结果不同。
当 参数 满足某个条件,函数不再执行。
def sum(num):
print(num)
# 递归的出口:当参数满足某个条件,停止
if num == 1:
return
# 自己调自己
sum(num - 1)
sum(3)
3
2
1
递归流程图
计算 1+2+3+…+num
def sum(num):
# 递归的出口:当参数满足某个条件,停止
if num == 1:
return 1
# 两个数字的相加
temp = sum(num - 1)
return num + temp
result = sum(100)
print(result)



