什么是函数
1、函数代码块以def关键词开头,后姐函数标识符号名称和圆括号()。
2、园括号之间可以用于定义参数
3、函数内容以冒号起始,并且缩进
4、return结束函数,选择性地返回一个值给调用方。不带表达式的return相当与返回None
def name(name): # 定义name的函数名称
print('这是一个函数',name) # 函数内容
return name # 返回函数值
name('name') # 执行函数
可变与不可变参数
# 不可变传参
def test(a):
a = 20
print(a)
b = 10
test(b) # b =20
print(b) # b = 10
# 可变传参
def learning(list):
list.append([1, 2, 3, 4])
print("函数值 : ", list)
# 执行结果 函数值 : [7, 8, 9, [1, 2, 3, 4]]
# 调用learing函数
list = [7, 8, 9]
learning(list)
全局变量和局部变量
name = 'David'
def name_001(name):
print('我的名字叫: ', name) # 全局
name = 'zhujiliang'
print('我的名字叫: ', name) # 局部
name_001(name)
print('我的名字叫: ', name) # 全局
非固定参数
# 若你的函数在定义是不确定用户想传入多少个参数,就可以使用非固定参数,引入*args,**kwargs
def name_002(name2, *args):
print(name2,args)
name_002('David','test',123) # *args传入内容变成元祖
def name_003(name3, **kwargs):
print(name3,kwargs)
name_003('David',a ='test',age=123)
递归
# 递归(函数之间可以调用,函数本身也可以进行调用,这种函数我们叫做递归)
def calc(n):
print(n)
if int(n/2) == 0:
return n
return calc(int(n/2))
calc(10)
执行结果:
10
5
2
1