一. 认识函数
1.内置函数
a = 1.123123
# 保留两位小数
result = round(a, 2)
print(result)
2.函数的特性:
- 功能性
- 隐藏细节
- 避免编写重复的代码
二.函数的定义
1.参数列表可以没有
2.可以使用return 返回值, 不使用return则返回None
def funcname(parameter_list):
print(parameter_list)
funcname([1,2])
小练习: 实现两个数字的相加,打印输入的参数
# 定义函数
def add(x,y):
res = x+y
return res
# 调用
print(add(1,2))
三.函数相关内容
1.如何让函数返回多个结果
使用逗号隔开,返回结果为元祖
def asdasd(qwe1,qwe2):
asd1 = qwe1 +2
asd2 = qwe2 *123
return asd1,asd2
# 序列解包, 方便给结果起名字
asd1_value, asd2_value = asdasd(1,2)
2.序列解包,链式赋值
a=1
b=2
c=3
可以写成a,b,c=1,2,3
d=1,2,3
print(type(d))->tuple
a,b,c=d
a,b,c=[1,2,3]
a=1
b=1
c=1
a,b,c=1,1,1
a=b=c=1
不限于列表和元组,而是适用于任意序列类型(甚至包括字符串和字节序列)
要求:赋值运算符左边的变量数目与序列中的元素数目相等
3.必须参数与关键字参数
- 必须参数: 定义函数时必须要定义的参数,不然函数无法运行
- 形式参数 函数定义的过程中定义的参数
- 实际参数 函数调用的过程中实际使用的参数
def add(x,y) # x,y 为形式参数 result = x+y return result # 调用 add(1,2) # 1和2 为实际参数
2.关键字参数
可直接指定形式参数对应的实际参数,如add(a=7,b=8),提高代码简洁性,方便阅读。
4.默认参数
在定义函数时,对形式参数直接赋值,即称为默认参数
def add(x=1,y=2)
result = x+y
return result
需要注意的:
- 默认参数,在形参时提前赋好变量,在print 时就是使用默认参数
- 非默认参数必须在默认参数的前面,非默认参数必须传入实参
- 在print时,如果想更改默认参数,直接修改即可
- 想要修改默认参数,但是不按照顺序,可以使用关键字参数,17=age
- 在使用关键字参数时,也要按照非默认参数和默认参数的顺序来进行
5.可变参数
def demo(*param):
print(param)
print(type(param))
a = (1,2,3,4,5,6)
demo(*a) # 类似解包
# 结果为tuple
6.关键字可变参数
# 关键字可变参数 使用**param
def city_temp(**param):
print(param)
print(type(param))
# 遍历字典 字典需要调用items()方法
for key, value in param.items():
print(key,value)
a = {'bj':'32c','xm':'23c'}
# 传入字典
city_temp(**a)
可变参数可以不传值, 不传值的时候,param是一个空字典