函数:
定义:def 关键词开头,空格之后接函数名称和()
函数名:函数只能包含字符串,下划线且不能是数字开头。
注释:每一个函数都应该对功能和参数进行相应的说明,应该谢写在函数下面第一行,增强可读性
作用:减少重复性代码
一.函数基本:
格式:def text():
print("你好")
text() # 你好
二.函数的返回值return:
函数内要想有返回值给调用者,必须用关键字return
#1.不写return:函数默认返回None
# def func():
print("nihao")
# res = func()
print(res) # None
#2.只写return:除了可以返回值之外还可以结束整个函数的运行,return之后整个函数结束运行
如:def func():
l =["jason","engon","tank"]
while True:
for i in l:
if i =="egon"
return
print("erhuo")
print(i)
result =func() # egon
print(res)
#3.return返回一个值:这个值可以是任意数据类型,是什么值返回什么
"""
1.所有的函数都有返回值,无论你写不写return
python中所有的函数都有返回值 不写的情况下默认返回None
2.光写return 或者return None并不是为了考虑返回值 而是为了结束函数的运行
"""
三.函数的参数:
形参:在函数的定义阶段,括号内写的变量名,叫做该函数的形式参数 ,简称形参 如 def add(a,b)a,b就是形参
实参:在函数的调用阶段,括号内实际传入的值叫做实际参数,简称实参 如 add(1,2)1,2,就是实参
形参和实参的关系:
形参就相当于变量名,而实参就相当于变量的值
函数调用传参的过程就是形参变量名赋值的过程
注意:形参个实参的绑定关系只在调用阶段有效,函数运行结束关系自动解除,只在函数内部有效,函数外部无任何影响
def sum(a):
"""用于计算从一到指定数字之和"""
i = 1
sum1 = 0
while i <= a:
sum1 += i
i += 1
print(sum1)
sum(100)
# 函数的多个调用
def add(a, b):
print(a + b)
add(3, 5)
四.位置参数和关键字参数:
1.位置参数:
# 函数位置形参在调用的时候,必须为其传值,位置参数,实参在进行传参过程中,位置要和函数内对其,不少不多
def my_max(x,y):
print(x,y)
if x > y:
return x
else:
return y
# res = my_max(1) # 在调用函数的时候 少一个实参不行
# res = my_max(1,2,3) # 在调用函数的时候 多一个实参也不行
2.关键字参数:
# 函数关键字参数在调用过程中,一定是在位置参数后面
# my_max(y=20,x=10)
# my_max(10,y=20) # 位置和关键字混合使用
# my_max(20,y=40)
my_max(20,y=40,x=30)
"""
注意:在函数的调用阶段 位置参数和关键字参数可以混合使用
但是必须保证
1.位置参数必须在关键字参数的前面(越短的越靠前,越长的越复杂的越靠后)
2.同一个形参不能被多次赋值
"""
五,默认参数:
# 用于定义函数,为参数提供默认值,调用是可以不用传该默认参数的值,
# 默认值参数的应用场景
# 当形参接收的到值比较单一的情况下 通常可以考虑用默认值形参
def user_info(name, age, gender="男"):
print(f"您的姓名是{name},年龄:{age},性别:{gender}")
user_info("吴凯", age=18)
user_info("吴凯", 18,"女")
六.可变长参数:
可变参数,用于不确定调用的时候会传递多少个参数(不传参数也可以),此时可以用
# 包裹位置参数,或者包裹关键字参数传递,会显得方便,可以是集合,列表,元组
def user_info(*args):
print(args)
# 接受所有位置参数,返回一个元组(不定长参数)
user_info("Tom")
user_info("Tom", 18)
user_info()
# 包裹关键字传递,传进的所有参数都会被返回成一个字典,是一个组包的过程
def user_info(**kwargs):
print(kwargs)
user_info(name="Tom", age=18, gender="男")