python函数定义时确定的参数称为_Python函数的定义和参数

函数的初识:

以功能为导向,一个函数就是一个功能。随调随用。

优点:

减少代码重复性。

增强代码的可读性。

函数的结构:

def function_name():

函数体

def: 关键字,定义函数

function_name(): 函数名,与变量名设置相同,具有可描述性。

函数体:要缩进。函数中尽量不要出现print()

函数的调用:

当解释器读到 function_name() 才会执行此函数,如果没有读到则不会执行里面代码

解释器读到一次便会执行一次。

函数的返回值:

return:

在函数中遇到return直接结束函数。将数据返回给函数的执行者、调用者。function_name()

如果return后面什么都不写,或函数中没有return,则返回None

return 返回单个值:

return value

# 值本身是什么类型值返回的就是什么类型的值

return 返回多个值:

return 'str',123,[l1,l2]

# 返回多个值是以元组的形式返回给函数的执行者。

# 可利用元组的拆包将每个元素赋值给多个变量。

函数的传参:

将一些数据传到函数里面,让里面的代码使用上这个数据产生我们想要的结果

格式:

function_name( 参数 )

参数分为形参和实参:

形参:

写在定义函数的位置的变量叫形参,形式上的一个完整。表示这个函数需要什么值

1.位置参数:

def func(name,age,hight):

return name,age,hight

func('李白',23,170)

2.默认参数:

设置的意义:普遍经常使用的值。

def func(name, age, hight=170):

return name, age, hight

print(func('李白',age=23))

实参:

在函数调用的时候给函数传递的值,实际执行的时候给函数传递的信息。

1.位置参数:

从左至右,按顺序一一对应

def func(name,age,hight):

return name,age,hight

func('李白',23,170)

2.关键字参数:

可以不按顺序,各个参数要一一对应。

def func(name,age,hight):

return name,age,hight

func(age=23,name='李白',hight=170)

3.混合传参:

既有位置参数也有关键字参数,位置参数一定要在关键字参数之前。

def func(name,age,hight):

return name,age,hight

func('李白',age=23,hight=170)

可变长参数:

函数定义时:

* 代表聚合。它将所有接收溢出的位置参数聚合成一个元组,赋值给args。

​ args:约定俗称

def func(*args):

return args

print(func(1,2,3,'a','b'))

# (1, 2, 3, 'a', 'b')

** 代表将所有接收溢出的关键字参数聚合到一个字典中,赋值给kwargs。

kwargs:约定俗称

def func(**kwargs):

return kwargs

print(func(a='libai',b=123))

# {'a': 'libai', 'b': 123}

# 组合使用:

def (a,b,*args,name='李白',**kwargs)

# *args用在位置参数之后,默认参数之前

# **kwargs用在默认参数之后

在函数调用时

*: 代表将一个可迭代对象拆分,每一个元素表示一个实参。

def func(*args):

print(args)

func('李白',['a','b',1,2,3])

# 未使用* ,('李白', ['a', 'b', 1, 2, 3])

func(*'李白',*['a','b',1,2,3])

# 使用* ,('李', '白', 'a', 'b', 1, 2, 3))

**:将字典里的每个键值对拆分,键表示每个型参,值表示实参

dic1 = {'name': '太白', 'age': 18}

dic2 = {'hobby': '喝茶', 'sex': '男'}

def func(**kwargs):

print(kwargs) # {'name': '太白', 'age': 18, 'hobby': '喝茶', 'sex': '男'}

func(**dic1,**dic2)

在函数外的用法:

# 接收溢出的值

a, *b = (1,2,3,4)

print(a,b)

# 1 [2,3,4]

*rest,a,b = range(5)

print(rest,a,b)

# [0,1,2] 3 4

print([1,2, *[3,4,5]])

# [1,2,3,4,5]

仅限关键字参数:

放在*args和**kwargs(如果有)之间,只能以关键字参数传值,且必须传值,否则会报错

def func(a,*args,b,**kwargs):

return a,args,b,kwargs

print(func(1,2,b=3,c=4,d=5))

# (1, (2,), 3, {'c': 4, 'd': 5})

# b 只接收相应的关键字参数,且必须传参

形参角度最终的顺序:

def func(位置参数,*args,默认参数,仅限关键字参数,**kwargs)

def func(a,b,*args,x=3,y,**kwargs):

return a,b,args,x,y,kwargs

print(func(1,2,3,4,x=5,y=6,z=8))

# (1, 2, (3, 4), 5, 6, {'z': 8})

三元表达式:

仅支持if else格式:

条件为真时的结果 if 判断条件 else 条件为假时的结果

# 判断两个数的大小

def func(a,b):

return a if a > b else b

print(func(3,4))

# 4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值