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

Python函数基础

时间:2023-03-26 14:54:18 Python

函数基本函数的作用就是将一部分代码包裹起来,实现某种功能,达到某种目的,而在使用或复用这段代码时,只需要非常简单地调用即可。大大降低了代码维护的难度。函数可重复调用的特点,提高了代码的复用性,提高了开发效率,便于维护和管理。函数的定义和调用函数的定义需要使用关键字def,函数定义不会执行函数中的代码,而是需要调用函数来执行。定义方法定义一个函数,在关键字def后面加上函数名,然后加上括号。括号内可以酌情选择是否写参数,在对应的范围内写代码。#语法:deffunction_name([parameter0],[parameter1]):code0code1code2...调用方法直接使用定义函数的函数名加上括号,在括号中写入对应的参数,作用域就会执行代码。#Syntax:funciton_name([parameter0],[parameter1])注意,只要调用了函数,就只能执行里面的代码。定义一个不带参数的函数#Definefunctiondeffunc():print('thisisfunction')#Callfunctionfunc()#thisisfunctionfunctionwithparameters#definefunctiondeffunc(name):print('thisis'+name)#callfunctionfunc('msr20666')#这是msr20666命名函数name和变量命名规则是一样的,推荐使用小驼峰命名法。形参函数的参数是配合函数运行的值。函数中的代码使用参数时,与使用变量是一样的。定义函数时的参数称为形参,形参相当于定义变量的变量名。填写的参数只是为了确定功能,所以称为形式参数;定义变量时的值,此时的参数具有实际作用,所以称为实参。参数的分类形参实参普通形参普通形参默认形参关键字实参普通集合形参命名关键字形参关键字集合形参遵循的原则调用函数时,参数应该是一一对应的定义时。普通形参和普通实参普通形参就是定义函数时直接把参数名写在括号里。普通形参是不赋值的,所以调用函数时,必须对普通形参进行赋值,否则会报错。调用函数时直接写的值就是普通实参。#直接写参数名就是普通参数defmyName(name):res='Mynameis%s'%nameprint(res)my_name='msr'#调用函数时,直接写的值就是普通参数myName(my_name)#参数必须一一对应,所以在调用函数时,不写参数会报错默认参数就是一个有默认值的普通参数。如果在调用函数时为默认参数指定了值,则默认参数的实际值为调用处的值,如果没有赋值,则默认参数的值为定义处的值。#定义函数时,默认值为默认参数defmyName(name='msr'):res='Mynameis%s'%nameprint(res)#调用时指定值my_name='msr20666'myName(my_name)#我的名字是msr20666#调用处没有指定值myName()#我的名字是msr当公共参数和默认参数同时存在时,默认参数必须在普通参数后面,否则会出现会报错。defmyName(name,name1='msr'):print(name,name1)myName('wxd',)#wxdmsr关键字实参普通实参是在调用函数时直接填入值,这样的赋值不能typedInrandomorder,应该按照形参定义的顺序来写。关键字实参是给具体的参数赋值,这样可以打乱参数的顺序,但是所有普通形参都必须使用关键字实参,否则会报错defname(name1,name2,name3,name4='noname'):print(name1,name2,name3,name4)#公共参数名称(111,222,333,444)#111222333444#关键字参数名称(name2=444,name1=222,name3=111,name4=333)#222444111333普通参数和关键字参数一起使用时,关键字参数不能写在普通参数前面。注意区分默认形参和关键字实参。默认形式参数和关键字实际参数在语法上完全相同。它们都是给一个参数一个固定的值,必须遵循正常的形参和实参。.但是区分的方法很简单。默认参数是形式参数,是定义函数时的默认参数,关键字参数是实际参数,关键字参数是调用函数时的关键字参数。一般集合参数函数的实参应与形参一一对应。如果有公共实参没有对应的形参,可以用通用集合参数专门收集冗余的公共实参,一个*就是公共集合参数,公共集合参数通常命名为args。收集的数据将变成一个元组。deffunc(name,*args):print(name)#msrprint(args)#(1,2,3,4,5,6)func('msr',1,2,3,4,5,6)关键字集合参数关键字集合参数和普通集合参数的作用与普通集合参数的租约基本相同,只是关键字集合参数集合了关键字实参,在普通形参前增加了关键字集合参数。在**符号上,一般命名为kwargs,收集的数据成为字典。deffunc(*args,**kwargs):print(args)print(kwargs)func(1,2,3,4,name='msr',age=18,sex=0)'''结果:(1,2,3,4){'name':'msr','age':18,'sex':0}'''普通集合参数和关键字参数一起可以收集所有实际参数#收集所有实际参考deffunc(*args,**kwargs):print(args)print(kwargs)命名关键字参数命名关键字参数是调用函数时必须使用关键字参数赋值的形式参数。命名关键字参数有两种定义方式:deffunction_name(parameter,*,parameter2)参数2是命名关键字,*后面的参数是命名关键字deffunction_name(args,parameter,kwargs)*parameter是命名关键字,普通集合参数后的普通参数是命名关键字参数#方法一,*本身不是参数:deffunc(*,a,b,c,d):print(a,b,c,d)#ABCdfunc(a='A',b='B',c='C',d='D')#方法二:deffunc(*args,a,b,c):print(a,b,c)#342func(a=3,b=4,c=2)symbolsand*use*和**用于函数定义处的集合操作,封装的*和**用于函数的调用处function做拆包操作,拆包*用于收集定义处的公共实参,成为元组;用于解包容器,成为调用点的通用实参。如果是字典,只获取key。**用于在定义时收集关键字实参,成为字典;用于在调用处打散字典(只能是字典,key是字符串)成为关键字实参。deffunc(*args):print(args)lst=[1,2,3,4,5,6]#如果直接把列表作为参数,lst就是一个参数func(lst)#([1,2,3,4,5,6],)#如果在lst前面加上*,则list会被解包,每个元素都是一个参数func(*lst)#(1,2,3,4,5,6)相当于把列表中的元素一个一个取出来,作为普通参数调用函数,**是一样的。deffunc(**kwargs):print(kwargs)dct={'one':1,'two':2,'three':3}#**可以解压字典func(**dct)#{'one':1,'二':2,'三':3}return关键字return可以返回自定义函数的值,称为返回值,可以将函数最终的计算结果返回到函数的调用处功能。return可以返回任何python数据,六大数据类型,对象,类,函数...,你只需要在return之后写上要返回的值即可;定义返回返回值返回定义的值,返回None;当函数执行到返回时,跳出函数,函数中剩余的代码不会执行;如果没有指定return返回值,则返回None。#定义函数deffunc():print('hello')#调用函数#函数执行并打印'hello',没有定义返回值,返回None给resres=func()print(res)'''result:helloNone'''定义返回值。#定义函数deffunc():print('hello')return'motherland'#调用函数返回'motherland'toresres=func()print(res)'''result:hellomotherland'''执行后return,function下面未执行的代码将不再执行。#定义函数deffunc():print(1)return2print(3)#调用函数func()'''结果:1'''使用函数名python中的函数可以像变量一样动态创建和销毁,作为参数传递,作为值返回,称为一等对象,其他语言功能有限。函数名是一个特殊的变量,可以作为变量使用和赋值;deffunc():print('hellomotherland')var=funcvar()#hellomotherland函数可以像变量一样销毁deffunc():print('hellomotherland')delfuncfunc()#错误,没有函数可用作容器类型数据元素的名称;deffunc0():print('func0')deffunc1():print('func1')deffunc2():print('func2')lst=[func0,func1,func2]foriinlst:i()'''result:func0func1func2'''函数名可以作为函数的参数;deffunc1():print('Iamfunc1')deffunc2(function):function()func2(func1)#Iamfunc1函数名可以作为函数的返回值;deffunc1():print('Iamfunc1')deffunc2(function):returnfunctionres=func2(func1)res()#我是func1函数的描述文档。定义函数时,在函数上方使用单行注释,或在函数下方使用多行注释对函数进行注释。可以使用__doc__方法或帮助功能查看。使用帮助功能查看功能中的注释说明。#Thisismyfirstfunction#函数的注释在上面deffunc():passprint(help(func))'''Result:Helponfunctionfuncinmodule__main__:func()#ThisismyfirstFunctions#Function上面查看评论无'''使用__doc__方法。deffunc():"""下面是我第二个function函数的注释"""pass#Useprint(func.__doc__)'''结果:这是我第二个function函数下面的注释'''总结了形式参数一起使用时在哪里找到顺序。公共参数->默认参数->公共集合参数->命名关键字参数->关键字集合参数