python中函数调用时所提供的参数可以是,python中函数定义时确定的参数称为
python函数的数学定义
Y=f(X),y是X的函数,X是自变量。y=f(x0,x1,…,xn)
Python函数
由几条语句、一个函数名和一个参数表组成的语句块,是组织代码的最小单位。
完成某些功能。
的功能
结构化编程是代码最基本的封装,一般是按照功能来组织一段代码。
封装的目的是重用和减少冗余代码。
代码更加简洁,美观,可读性更好。
功能分类
内置函数,如max()、reversed()等。
函数,比如math.ceil()等。
自定义函数,用def关键字定义
定义函数名(参数列表):
函数体(代码块)
[返回返回值]
函数名是标识符,命名要求是一样的。
语句块必须缩进,有4个空格。
如果没有return语句,Python的函数将隐式返回None值。
中定义的参数列表称为形参,形参只是一个符号表达式(标识符),简称形参。
函数调用函数定义只声明了一个函数,不能执行,需要调用才能执行。
调用的方法是在函数名后加括号,必要时在括号内填入参数。
调用时写入的参数是实际参数,实际上是传入的值,简称实参。
Add (x,y): #函数定义
Result=x y #函数体
Return #返回值
Out=add(4,5) #函数调用,可能有返回值。使用一个变量来接受这个返回值
带括号的Print(out) #print函数也是一个调用
上面的代码:
定义一个函数add,名字是add,接受两个参数。
该函数计算的结果由返回值返回,需要一个return语句。
调用时,在函数名add后加两个参数,返回值可以被变量接受。
函数名也是标识符,返回值也是值。
这个定义需要在调用之前就已经定义好了,也就是说,在调用它的时候,否则就会抛出NameError异常。
该函数是一个可调用的对象,callable()
参数函数在定义时要约定形式参数,调用时要提供足够的实际参数。一般来说,形参和实参的个数应该相同(可变参数除外)。
参数传递方法1、位置参数传递
定义def f(x,y,z),调用时使用f(1,2,3),按照参数定义的顺序传入参数。
2.关键字被转移到参数。
定义def f(x,y,z),调用时使用f(x=1,y=3,z=5),使用参数名传入实参。如果使用参数的名称,则传入参数的顺序可以不同于定义的顺序。
要求position参数必须在keyword参数之前传入,position参数要对应位置。
参数缺省值
默认值也称为缺省值,可以在定义函数时添加到参数中。其功能:
当传入的参数不足时,可以将参数的默认值赋给未指定的参数作为默认值。
当参数较多时,用户不必每次都输入所有的参数,简化了函数调用。
可变参数
要求:写一个参数,可以将多个参数相加求和。
定义总和(可迭代):
总和=0
对于iterable中的x:
总和=x
返回总和
peint(sum([1,3,5])
打印(sum(范围(4)))
在上面的例子中,迭代的元素被传入,每个元素被累加。
也可以使用可变参数来完成上述功能。
1.可变位置参数
在参数前使用*表示该参数是可变位置参数,可以接受多个参数。
它将收集的参数组织成一个元组。
2.可变关键字参数
在参数前使用* *表示该参数是可变关键字参数,可以接受多个关键字参数。
它将收集到的参数的名称和值组织成一个字典。
def fn(x,y,*args,**kwargs):
打印(x,y,args,kwargs)
fn(1,2,3,4,5,a=1,b=abc )
总结:
使用混合参数时,普通参数需要放在参数列表前面,变量参数需要放在参数列表后面,变量位置参数需要放在变量关键字参数前面。
keyword-only参数
python3之后,添加了仅关键字参数。
仅关键字参数:定义参数时,出现在*星号或变量po后面的普通参数
def fn(*,x):
打印(x,args)
fn(3,5,x=7)
参数的混合使用
def fn(x,y,z=3,*args,m=4,n,**kwargs)
打印(x,y,z,m,n)
打印(参数)
印刷品(夸脱)
fn(1,2,3,4,5,6,m=7,n=8,a=b ,b=abc )
列表参数的一般顺序是:普通参数、缺省参数、可变位置参数、仅关键字(带缺省值),
可变关键字参数。
注意:
代码应该易于阅读和理解,而不是对其他人来说很难。
请根据书写习惯定义函数参数。
最常用的参数定义为普通参数,但默认值可能不提供,必须由用户提供。注意这些参数的顺序,最常用的先定义。
只有在使用名称的情况下才能使用的参数被定义为仅关键字参数,并且参数必须由关键字传递。
如果函数有很多参数无法一一定义,可以使用可变参数。如果你需要知道这些参数的含义,使用变量关键字参数集合。
参数解构:
在为函数提供参数时,可以使用或* *来解构iterable对象之前的结构,提取其中的所有元素作为函数的参数。
使用解构的位置传递参数
用* *解构关键字,传递参数。
提取元素的数量应符合参数的要求。
定义添加(可迭代):
结果=0
对于iterable中的x:
结果=x
回送结果
加法(1,2,3)
添加(*[1,3,5])
add(*range(5))
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。