# 1.返回值"""
1) 什么是返回值
返回值就是从函数内部传递到函数外部的数据。(如果实现函数的功能,产生了新的数据一般都需要将这个新的数据通过返回值返回)
2) 怎么确定函数返回值
在函数体中通过return关键字来返回返回值:return 数据
注意:同一个函数中,只有一个return有效。(因为执行函数体的时候只要遇到return,函数直接结束)
如果要在一个函数中返回多个数据,用能够保持多个数据的容器。常用元组:return 数据1,数据2...
3) 怎么函数外部获取函数返回值
获取函数调用表达式的值就是获取函数的返回值。(返回值对应的数据能做的,函数调用表达式都可以做)
"""deffunc1():print('111')return# 相当于return Noneprint('222')
func1()deffunc2():return100print(func2())# 练习:删除指定列表中所有指定元素deffunc3(list:list,item):return[x for x inlistif x != item]print(func3([1,23,4,5,1,34,2,1],1))
全局变量和局部变量
# 根据变量的作用域不同,将变量分为全局变量和局部变量两种# 1.全局变量"""
定义在函数和类外面的变量都是全局变量
全局变量的作用域:从定义开始到程序结束的任何地方都可以用
"""
a =10for b inrange(3):
c =10for _ inrange(3):print(f'循环里面a:{a}')deffunc1():print(f'函数里面a:{a},b:{b},c:{c}')
func1()print(f'外部a:{a}')# 2.局部变量"""
定义在函数里面的变量就是局部变量
作用域:从定义开始到函数结束
局部变量产生的原因:调用函数时,系统会自动为被调用的函数在栈区间开辟一块独立的内存空间,专门用来保存在
这个函数中定义的变量,当函数调用结束后,这块内存空间会自动销毁
"""deffunc4(m=10):
x ='abc'print(f'函数内部x:{x},m:{m}')
func4()# print(f'函数外部的x:{x}') 报错# print(f'函数外部的m:{m}') 报错# 3.global和nonlocal# global和nonlocal是函数体中的关键字,只能在函数体中使用"""
1) global
global的作用:在函数中定义或者修改全局变量
用法:
global 变量名
变量名 = 值
2) *nonlocal
作用:在局部的局部中修改一个局部变量的值
nonlocal 变量名
变量名 = 值
"""deffunc5():# 使用global在函数中定义全局变量global z
z =100
func5()print(f'外部z:{z}')
name ='张三'deffunc6():# 使用global修改全局变量的值(直接在函数内容给全局变量赋值,不会修改值,而是产生一个新的局部变量)global name
name ='李四'print(f'函数内部name:{name}')
func6()print(f'函数外部name:{name}')deffunc7():
age =18deffunc8():nonlocal age
age =20print(f'局部变量的局部age:{age}')
func8()print(f'局部变量的age:{age}')
func7()