1.函数的创建
2.参数的传递
def fun(c,d):#注意语句最后有冒号
print('c=', c)
print('d=', d)
c=100
d.append(4)
print('c=', c)
print('d=', d)
a=1
b=[1,2,3]
print('a=',a)
print('b=',b)
fun(a,b)
print('a=',a)#输出结果为a=1
print('b=',b)#输出结果为b=[1,2,3,4]
#在函数调用过程中,若果是不可变对象,则函数体中对参数的修改不会影响实参的值(类似于c语言中的值传递)
#如果是可变对象,则函数体中的修改会影响实参的值(类似于c语言中的地址传递)
3.函数的返回值
只能定义一个个数可变的位置参数/关键字参数
在一个函数的定义过程中,如果既有个数可变的位置参数,又有个数可变的关键字参数,则个数可变的位置参数要放在个数可变的关键字参数之前
ef fun(a,b,c):
print('a=',a)
print('b=',b)
print('c=',c)
fun(1,2,3)
lst=[1,2,3]
#fun(lst) 报错:fun() missing 2 required positional arguments: 'b' and 'c'
fun(*lst)
fun(a=10,c=20,b=30)#关键字实参
dict={'a':100,'b':200,'c':300}
fun(**dict)
def fun2(a,b,*,c,d)#c和d只能按照关键字形参进行传递
斐波那契数列:
def fibonaqi(n):
if n==1:
return 1
if n==2:
return 1
if n>2:
return fibonaqi(n-1)+fibonaqi(n-2)
for i in range(1,7):
print(fibonaqi(i))