1 语法
#语法 def 函数名(参数1,参数2,参数3,...): ‘‘‘注释‘‘‘ 函数体 return 返回的值 #函数名要能反映其意义
返回值数=0:返回None放回值数=1:返回object放回值数>1:返回tuple 2.定义函数的三种形式
1、无参:应用场景仅仅只是执行一些操作,比如与用户交互,打印2、有参:需要根据外部传进来的参数,才能执行相应的逻辑,比如统计长度,求最大值最小值 3、空函数:设计代码结构
形参即变量名,实参即变量值,函数调用时,将值绑定到变量名上,函数调用结束,解除绑定
def calc(x,y): result = x * y return result c = calc(a,b) x,y是形参 不占用内存空间a,b是实参
参数
#1、位置参数:按照从左到右的顺序定义的参数 位置形参:必选参数 位置实参:按照位置给形参传值 #2、关键字参数:按照key=value的形式定义的实参 无需按照位置为形参传值 注意的问题: 1. 关键字实参必须在位置实参右面 2. 对同一个形参不能重复传值 #3、默认参数:形参在定义时就已经为其赋值 可以传值也可以不传值,经常需要变得参数定义成位置形参,变化较小的参数定义成默认参数(形参) 注意的问题: 1. 只在定义时赋值一次 2. 默认参数的定义应该在位置形参右面 3. 默认参数通常应该定义成不可变类型 #4、可变长参数: 可变长指的是实参值的个数不固定 而实参有按位置和按关键字两种形式定义,针对这两种形式的可变长,形参对应有两种解决方案来完整地存放它们,分别是*args,**kwargs
位置参数:x y b 默认参数 a args 元组 *[] kwargs 字典 **{}
def foo(x, y, *args, a=1, b, **kwargs): print(x, y) print(args) print(a) print(b) print(kwargs) foo(1, 2, 3, 4, 5, b=6, c=7, d=8)
1 2(3, 4, 5)16{‘d‘: 8, ‘c‘: 7}
3.全局变量 局部变量
name = "全局变量"def chang_name(): name = "局部变量" return nameprint(chang_name()) name = "全局变量"def chang_name(): #name = "局部变量" return nameprint(chang_name()) name = "全局变量"def chang_name(): global name name = "局部变量" return nameprint(chang_name())print(name)显示:局部变量 全局变量 局部变量局部变量 总结:函数内部没有global关键字,局部优先级大于全局变量,可读,但对全局变量是可变对象进行内部操作 有gbloal关键字,当前局部变量就是那个全局变量,可读可改 规范:全局变量全部大写 局部变量全部小写
原文地址:https://www.cnblogs.com/icemonkey/p/10428635.html
时间: 2024-10-12 13:29:32