当前位置: 首页 > 后端技术 > Python

4.Python函数

时间:2023-03-26 12:50:54 Python

Python函数提示:本文根据b站黑马python类整理链接=>2022新版黑马程序员python教程1.函数介绍功能:整理可复用,用于实现特定功能的代码片段。使用函数的好处是将函数封装在函数中,可以随时随地复用,提高代码的复用性,减少代码的重复,提高开发效率。二、函数的定义定义:def函数名(传入参数):函数体返回返回值函数调用:函数名(参数)注:不需要参数可以省略(后面章节有说明)返回值可以不需要的省略(后续章节解释)函数必须先定义后使用实践案例:automatic核酸检测defauto(param):"""自动判断函数:paramparam:bodytemperature:return:"""ifparam<=37.5:print(f'体温{param},\n正常请输入')else:print(f"体温{param},\n不正常")auto(36)3.函数的参数根据函数的定义语法:def函数名(传入参数):函数体return返回值注:函数定义中的参数称为形参。函数调用中的参数称为实际参数。函数的参数个数没有限制。:defadd(x,y):result=x+yprint(f'{x}+{y}={result}')add(1,2)实践案例:升级版自动检测核酸defauto(param):"""自动判断函数:paramparam:体温:return:"""ifparam<=37.5:print(f'体温{param},\n正常请输入')else:print(f"bodytemperature{param},\nNotnormal")auto(36)四、函数返回值的定义:所谓“返回值”就是程序中函数完成的结果,最后给出callertheresult语法:deffunction(parameter...):函数体return返回值variable=function(parameter)语法是:通过return关键字,如果函数没有返回数据给调用者使用return语句返回数据:Python中有一个特殊的字面量:None,其类型为:没有返回值的函数实际返回:None这个字面量None的意思是:空,表示Nonereturnedbythefunction表示函数没有返回任何有意义的内容,即返回空。4.1None类型的应用场景None是一个特殊的文字,用来表示:空,无意义,它有很多应用场景。用在没有返回值的函数中,用在if判断中。在if判断中,None等价于False。一般用于函数中主动返回None,用于在声明没有内容的变量上定义变量,但暂时没有必要让变量有特定的值。您可以改用无。4.2多个返回值按照返回值的先后顺序,写入多个变量对应的顺序接收。变量之间用逗号分隔,支持不同类型的数据返回4.3函数有很多函数中参数的常见使用方式有4种:positionalparameterspositionalparameters:调用函数时,根据定义的参数位置传递参数函数注意:传递参数和定义参数的顺序和个数关键字参数必须一致关键字参数:函数调用时以“key=value”的形式传递参数。功能:可以使功能更加清晰易用,也可以明确参数的顺序要求。注意:调用函数时,如果有位置参数,则位置参数必须在关键字参数的前面,但关键字参数之间没有先后顺序。默认参数Defaultparameters:默认参数也叫默认参数,用于定义函数,为参数提供默认值。调用函数时可以不传递默认参数的值(注意:所有位置参数必须出现在默认参数之前,包括函数定义和调用)。功能:调用函数时不传递参数时,会使用default对应默认参数注意:调用函数时,如果传递了默认参数值,则修改默认参数值,否则为默认值将会被使用。不定长参数不定长参数:不定长参数也称为可变参数。它用于不确定调用将传递多少参数(也可以不传递任何参数)。作用:调用函数时参数个数不确定时,可以使用变长参数。变长参数的类型:位置传递注:所有传入的参数都会传给args变量集合,它会根据传入参数的位置合并成一个元组(tuple),args是元组类型,这是positiontransferkeywordtransfer注意:当参数为“key=value”形式时,所有“key=value”都会被kwargs接受,并根据“key=value”组成字典。效率相对较低。我们可以给函数添加文档,帮助理解函数的功能。语法如下:以多行注释的形式,将函数的解释写在函数体之前。在PyCharm中写代码时,可以鼠标悬停查看调用函数的说明文档defauto(param):"""auto判断函数:paramparam:bodytemperature:return:"""ifparam<=37.5:print(f'体温{param},\nnormal请输入')else:print(f"体温{param},\nnoNormal")auto(36)6.函数嵌套调用定义:所谓函数嵌套调用是指一个函数调用另一个函数defone():print('111')deftwo():one()print('222')two()7.变量作用域变量作用域是指变量的作用域(哪里有变量,哪里没有变量),主要分为两类:局部变量和全局变量7.1局部变量所谓局部变量就是定义在函数体内的变量,即只在函数体内生效函数体。:num=300print(num)#100test()print(num)#errornamenumisnotdefined7.2全局变量所谓全局变量是指在函数体内外都可以生效的变量。7.3global关键字使用global关键字可以在函数内部将变量声明为全局变量,如下图num=100deftest():globalnumnum=300print(num)test()print(num)8.综合案例ATM取款案例:money=5000000name=input('请输入用户名')defadd(num):globalmoneymoney+=numprint('------deposit------')print(f'存款成功,您存{num}元,余额为{money}')defqk??(num):globalmoneymoney-=numprint('--------Withdrawal--------')print(f'充值成功,您已提取{num}元,余额为{money}')deffind():print('--------查询余额------')print(f'嗨{name},余额是{money}')defmenu():print('-------主菜单------')print('查询余额\t[Input1]')print('Deposit\t\t[Input2]')print('Withdraw\t\t[Input3]')print('Exit\t\t[Input4]')returninput('Pleaseenteryourchoice:')whileTrue:keyboard=menu()ifkeyboard=='1':find()continueelifkeyboard=='2':mon=input('请输入你要存多少钱?请输入:')add(int(mon))elifkeyboard=='3':q=input('请输入你要取多少钱?请输入:')qk(int(q))continueelse:print('Endprogram`')break9.匿名函数9.1作为参数传递函数计算的函数,作为参数,通过test_func函数中test_func的使用,需要传入一个函数作为参数。该函数需要接收2个数字进行计算。计算逻辑由传入的函数决定。compute函数接收2个数进行计算,compute函数作为参数。传递给test_func函数使用最后在test_func函数内部,传入的compute函数完成了数的计算。因此,这是一种计算逻辑的传递,而不是数据的传递。9.2lambda匿名函数定义中的def关键字可以定义一个有名字的函数。lambda关键字可以定义一个匿名函数(没有名字)和一个有名字的函数,可以根据名字重用。没有名字的匿名函数,只能临时使用一次。匿名函数定义语法:lambda是一个关键字,意思是定义一个匿名函数。传入参数代表匿名函数的形参,如:x,y表示接收2个形参。函数体是函数的执行逻辑。注意:只能写一行,不能写多行代码如下图,我们可以:通过def关键字定义一个函数,传入,如下图:也可以使用lambda关键字来传入一个一次性使用的lambda匿名函数usingdef和Usinglambda,定义的函数功能是完全一样的,但是lambda关键字定义的函数是匿名的,不能使用两次。总结以上为Python函数,后续会持续更新。欢迎大家点赞关注~~