函数:
定义: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中所有的函数都有返回值 不写的情况下默认返回None2.光写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="男")