函数
函数的创建和调用
创建一个函数也称为定义函数 <理解为创建一个具有某种用途的工具>
def funtionname([parameterlist]):
['''comments''']
[funtionbody]
# funtionname :函数名称、在调用函数时使用
# parameterlist:可选参数,用于指定向函数中传递的参数。如果有多个参数,各参数间使用逗号“,”分隔。如果不指定,则表示该函数没有参数,在调用时也不指定参数
# comments:可选参数,表示为函数指定注释,注释的内容通常是说明该函数功能,要传递的参数的作用等
调用函数时,输入函数名称及左侧的小括号,就会显示该函数的帮助信息
如果输入函数名及左侧的小括号,没有显示友好提示,先按快捷键F5执行一遍代码
# funtionbody:可选参数,用于指定函数体,即该函数被调用时后要执行的功能代码。如果函数有返回值,可以使return语句返回
调用函数也就是执行函数 <理解为使用该工具>
funtionname([parameterlist])
# funtionname :函数名称,要调用的函数名称必须是已经创建好的
# parameterlist:
参数传递
了解形式参数和实际参数
1、通过作用理解
形式参数:在定义函数时,函数名后面括号中的参数为“形式参数”
def demo(obj): # 定义或创建函数
print(obj) # obj为形式参数
mot = "唯有" # 字符串-----不可变对象
demo(mot) # 调用demo函数,mot为实际参数
实际参数为不可变对象---值传递
进行值传递后,改变形式参数的值,实际参数的值不变
list1 = ['绮梦','香凝'] # 列表-----可变对象
demo(list1) # 调用demo函数,list1为实际参数
实际对象为可变对象---引用传递
进行引用传递后,改变形式参数的值,实际参数的值改变
2、通过一个比如来理解形式参数和实际参数
函数定义时参数列表中的参数就是形式参数-----剧本的角色
函数调用时的传递进来的参数就是实际参数-----演角色的演员
位置参数
位置参数也称为必备参数,必须按照正确的顺序传到函数中,即调用时的数量和位置必须和定义时是一样的
1、数量必须与定义时一致
指定的实际参数必须与实际参数的数量一致,否则将抛出TypeError
2、位置必须与定义时一致
抛出TypeError--参数的类型不一致时
产生的结果与预期不符--数据类型一致
关键字参数
关键字参数是指使用形式参数的名字来确定输入的参数值,通过该方式指定实际参数时,不再需要与形式参数的位置一致,将参数名写正确即可。
形式为:fun_bmi(height=1.83,weighe=60,person="路人甲")
为参数设置默认值-----默认参数必须指向不可变对象
调用函数,如果没有指定某个参数,将抛出异常。
可以为参数设置默认值,即在定义函数时直接指定形式参数的默认值
def funtionname([parameterlist = defaultvalue1])
[funtionbody]
# parameterlist=defaultvalue1:可选参数,用于指定向函数中传递的参数。并且为该参数设置默认值为 defaultvalue1
funtionname.__defaults__
查看函数的默认值参数的当前值,其结果是一个元祖
可变参数
可变参数也成不定长参数,即传入函数中的实际参数可以是零个、一个、两个到任意个
1、*parameter
这种形式接受多个实际参数将其放到一个元祖中
如果想要使用一个已经存在的列表作为函数的可变参数,可以在列表名词前加*
2、**parameter
这种形式接受多个类似关键字参数一样显示赋值的实际参数,并将其放到一个字典中
如果想要使用一个已经存在的字典作为函数的可变参数,可以在列表名词前加**
返回值
为函数设置返回值的作用就是将函数的处理结果返回给调用它的函数
可以在函数体内使用return语句为函数指定返回值。无论return语句出现在函数的什么位置,只要得到执行,就会直接结束函数的执行
return [value]
# return :为函数指定返回值,调用函数时,可以把它赋给一个变量,用于保存函数的返回结果
返回的是一个值,该值可以使任意类型
返回多个值,那么result保存的是一个元祖
# value :可选参数,用于指定返回的值,可以返回一个值,也可以返回多个值
变量的作用域
变量的作用是指程序代码能够访问该变量的区域,如果超出该区域,再访问时就会出现错误
局部变量
局部变量是指在函数内部定义并使用的变量,它只在函数内部有效,
即函数内部的名字只在函数运行时才会创建,在函数运行之前或者运行完毕之后,所有的名字就都不存在
如果在函数外部使用函数内部定义的变量,就会排除NameError异常
全局变量
1、如果一个变量在函数外定义,那么不仅在函数外可以访问到,在函数内也可以访问到
2、在函数体内定义,并且使用global关键字修饰后,该变量也就变为全局变量。在函数体外也可以访问到该变量,并且在函数体内还可以对其进行修改
global 变量名称
匿名函数
匿名函数(lambda)是指没有名字的函数,这样的函数只使用一次
result = lambda[arg1[,arg2,arg3,]:expression
# result :用于调用lambda表示式
# [arg1[,arg2,arg3,]:可选参数,用于指定要传递的参数列表,多个参数键使用逗号“,”分割
# expression:必选参数,用于指定一个实现具体功能的表达式。如果有参数,那么在该表达式中将应用这些参数
参数可以有多个,用逗号“,”分割
表达式只能有一个,即只能返回一个值
而且也不能出现其他非表达式语句(如for或while)
函数总结1
最新推荐文章于 2024-05-31 21:34:30 发布