# 通过列表字典传参
# 示例1、通过列表传参
"""
1、通过列表传参,需要进行处理,否则列表会被整体当做一个参数
"""
# 列表被当做一个整体作为参数
def foo1(*args):
print(args)
foo1([1, 2, 3, 4])
# 列表中的每一个元素,都是参数
foo1(*[1, 2, 3, 4])
# 示例1、通过字典传参
"""
1、通过字典传参,需要进行处理
"""
def foo2(**kwargs):
print(kwargs)
# 字典中的每一组键值对元素,都是参数
foo2(**{'a': 1, 'b': 2, 'c': 3})
# 斐波那契数列
"""
1、从0,1开始
2、第三个数等于前两个数相加之和
0,1,1,2,3,5.......
"""
# 取第n位对应的数值(非索引取值,所以0表示第一位,我们使用1表示第一位)
# 循环
def feibo1(n):
before = 0
after = 1
result = 0
if n == 1:
return 0
elif n == 2:
return 1
else:
for i in range(n-2):
result = before + after
before = after
after = result
return result
print(feibo1(6))
# 递归
def feibo2(n):
if n == 1:
return 0
elif n == 2:
return 1
else:
return feibo2(n-1)+feibo2(n-2)
print(feibo2(6))
# 通过内置函数求阶乘
# 这种写法也叫函数式编程
from functools import reduce
print(reduce(lambda x, y: x*y, range(1, 5)))