# 注意:return只能在函数体中使用# 1)将数据作为函数的返回值返回# 2)结束函数(执行函数体的时候如果遇到return,函数直接结束)deffunc1():print('+++++++')return100print('-------')print('=======')print(func1())# 100deffunc2():print('+++++++')returnprint('-------')print('=======')print(func2())print('---------------------------------------华丽的分割线------------------------------------')deffunc3(n):# n = 5for x inrange(1, n):if x %3==0:return x
print(f'x:{x}')print(func3(5))
"""
1)全局变量
python中没有定义在函数中或者类中的变量默认都是全局变量。
作用域:从定义开始到程序结束
2)局部变量
定义在函数中的变量就是局部变量(形参也是局部变量)
作用域:从定义开始到函数结束
"""# ----------------------------------1)全局变量----------------------------------# a是全局变量
a =100# x和b都是全局变量for x inrange(5):
b =200print(f'外面使用a:{a}')print(f'外面使用x:{x}')print(f'外面使用b:{b}')print('---------------------------------------华丽的分割线------------------------------------')for y inrange(3):print(f'循环里面a:{a}')print(f'循环里面b:{b}')print(f'循环里面x:{x}')print('---------------------------------------华丽的分割线------------------------------------')deffun1():print(f'函数里面a:{a}')print(f'函数里面b:{b}')print(f'函数里面x:{x}')
fun1()# ----------------------------------2)局部变量----------------------------------print('---------------------------------------华丽的分割线------------------------------------')# m 和 n 是局部变量deffunc2(m):
n =1000print(f'函数里面m:{m}')print(f'函数里面n:{n}')
func2(100)# print(f'函数外面m:{m}')# print(f'函数外面n:{n}')
3.全局变量和局部变量的存储原理
"""
1)全局变量默认保存在全局栈区间,全局栈区间会在程序结束后自动释放。
2)调用函数的时候系统会自动为这个函数创建一个临时栈区间,用来保存在函数中产生的数据(局部变量
就是保存在函数对应的临时栈区间中的),函数对应的临时栈区间会在函数调用结束的时候自动释放。
3)在函数中可以通过关键字global修改局部变量的保存方式,让局部变量保存在全局栈区间中。
"""print('---------------------------------------华丽的分割线------------------------------------')
name ='小明'deffunc3():# 在函数内部定义全局变量用globalglobal num
num =10# 在函数内部修改全局变量的值用globalglobal name
name ='小花'
func3()print(num)print(name)
匿名函数
1.匿名函数 - 没有名字的函数
"""
函数名 = lambda 形参列表:返回值
相当于:
def 函数名(形参列表):
return 返回值
注意:
1)匿名函数的形参至少一个
2)匿名函数的调用和普通函数一样
3)无默认值的类型说明在匿名函数中不能用
"""# 案例:定义一个匿名函数,求任意两个数的和
sum_2 =lambda num1=1, num2=2: num1 + num2
result = sum_2(100,200)print(result)
result = sum_2(num1=10, num2=20)print(result)
result = sum_2()print(result)# 练习:定义一个匿名函数,判断指定的年是否是闰年
is_leap_year =lambda year: year %4==0and year %100!=0or year %400==0print(is_leap_year(2000))print(is_leap_year(2001))