目录
一.函数
1.普通函数
2.匿名函数
二.函数作用域
1.全局变量和局部变量
2.变量修改
三.递归
一.函数
1.普通函数
代码如下:
def good(x,y): #x,y两个形参
z=x+y
return z
a=good(11,2)
print(a)
运行结果:
2.匿名函数
代码如下:
#匿名函数 不需要写返回,自动返回 good1=lambda x,y,z: x+y+z a=good1(12,9,1) print(a)
运行结果:
二.函数作用域
1.全局变量和局部变量
代码如下:
def good():
name="hello" #局部变量
print(name)
good()
运行结果:
举例:
代码如下:
def good():
a1=3 #一层局部变量
def good1():
a2=9 #二层局部变量
print("good1:",a2)
print("good:",a1)
#good1() #调用函数good1
return good1()
print(good()) #当函数没有return的时候,默认返回的是None
运行结果:
2.变量修改
①.通过局部变量去修改全局变量 global
代码如下:
name="nihao"
def good():
#global 声明全局变量,可以在局部进行修改
global name #声明全局变量
name="hello" #局部变量
print("局部变量是:",name)
good() #函数内部的代码只有被调用后才会执行
print("全局变量是:",name)
运行结果:
②.nonlocal
代码如下:
def good():
a1=19 #一层局部变量
#good1函数的作用就是修改变量a1=19的值为a1=46
def good1():
nonlocal a1 #声明局部变量
a1=46 #二层局部变量
print("good1内部打印的a1:",a1)
print("执行good1函数前的a1:",a1)
good1()
print("执行good1函数后的a1:", a1)
good() #当函数没有return的时候,默认返回的是None
说明:Python3.6 以上,nonlocal无效
三.递归
1.数量没有限制
代码如下:
#递归 只有函数的入口,没有出口,是一个死循环
def good():
print("hello")
#调用函数自己
good()
print("good")
good()
运行结果:
2.数量有限制
代码如下:
#递
#good(3)=3+good(2)
#good(2)=2+good(1)
#good(1)=1+good(0)
#归
#good(3)=3+2+1+0
#good(2)=2+1+0
#good(1)=1+0
#最终归来:good(3)=6
def good(num1):
print(num1)
if num1>=1:
return num1+good(num1-1)
else:
return num1 #不再调用本身
print("递归:",good(3))
运行结果:
暑期编程PK赛 得CSDN机械键盘等精美礼品!



