一、函数
定义:函数是对功能的封装。
1、语法格式:
def 函数名():
函数体
define
#执行流程:先执行def,知道有这么个东西。然后调用yue(),开始执行函数
def yue():
print("你好")
yue()
调用:
函数名()
2、返回值
1、如果函数里面不写return,代表没有返回值,得到的是None
2、在函数中写return,什么都不写,返回None
3、return放到中间不会执行下面的函数,起到终止作用。
4、在函数中写return值,返回一个值
5、在函数中可以返回多个返回值,return 值1,值2,值3....。返回的是一个元组
3、参数
```python
#在函数声明的位置的变量:形参
def yue(tools):
print("打开%s"%tools)
yue("极目")
#在函数调用的地方给的具体的值:实参
参数的作用:函数执行的时候给函数传递信息。
形参:函数声明的位置变量
实参:函数调用的时候给的具体的参数
函数调用
按照关键字传递参数
```python
def chi(good_food,no_good_food,drink):
print(good_food,no_good_food,drink)
chi("法国大蜗牛","威龙辣条","大白梨")
chi(drink="可乐",good_food="辣子鸡",no_good_food="锅包肉")
混合参数:即用位置参数,也用关键字参数。
def chi(good_food,no_good_food,drink):
print(good_food,no_good_food,drink)
chi("盖浇饭","汉堡",drink="柠檬水")
1、实参:
1、位置参数:按照形参的参数位置,给形参传递
2、关键字参数:按照参数的名字给形参传值
3、混合参数:即用位置参数,也用关键参数。
2、形参:
1、位置参数
2、默认值参数
def regist(name,phone,gender):
print(name,phone,gender)
regist("阿凡达","10086","男")
regist("阿凡达","10086","男")
regist("阿凡达","10086","男")
regist("阿凡达","10086","男")
改版:
def regist(name,phone,gender="男"):
print(name,phone,gender)
regist("阿凡达","10086",)
regist("阿凡达","10086",)
regist("阿凡达","10086",)
regist("阿凡达","10086","女")
默认值参数必须在参数的最后。
3、动态参数
#不定参数,*在这里接收位置参数的动态传参
def chi(*food):
print(food)
chi("盖浇饭","火锅","龙虾面")
def chi(name,*food):
print(name+"要吃",food)
chi("刘亦菲","盖浇饭","火锅","龙虾面")
def chi(name,location = "北京",*food):
print(name+"要吃",food)
chi("小明","天津","狗不理包子","大麻花")
打印结果为:小明要吃 (‘狗不理包子’, ‘大麻花’)
没有地点:默认值没有起作用。
def chi(name,*food,location = "北京"):
print(name+"要吃",location,food)
chi("小明","天津","狗不理包子","大麻花")
注:动态传参之后加默认值参数。
第二种:
def chi(**food):
print(food)
chi(good = "狗不理",no_good_food = "汉堡")
{‘good’: ‘狗不理’, ‘no_good_food’: ‘汉堡’}
返回字典
顺序:位置参数,*args,默认值参数,**kwargs (key word)关键字
def fun(a,*args,c = “哈哈”,**kwargs,):
总结:
1、实参
位置参数
关键字参数
混合参数(位置,关键字)
2、形参
位置参数
默认值参数
动态传参
顺序:位置,*args,默认值参数,**kwargs
函数的注释:
def func():
"""
这个函数用来计算a和b的和。
:param a:
:param b:
:return: 返回a+b
"""
a = int(input("请输入a:"))
b = int(input("请输入b:"))
c = a+b
return c
ret = func()
print(ret)
接收所有参数
聚合:
def func(*args,**kwargs):
print(args,kwargs)
func(1,2,3,4,5)
打散:
def func(*food):
print(food)
lst = ["鸡蛋","煎饼果子","猪蹄","滋滋冒油"]
func(*lst)#打散,把list,tuple,set,str进行迭代打散
第二种:
def func(**food):
print(food)
lst = {“name”:“东滚彭”,“age”:“18”}
func(**lst)#打散成关键字参数