函数:把一些独立功能的代码组成一个小模块使用
内置函数:input、print、open、map......
自定义函数:根据需求自己定义
语法:
def: 函数名()
内容
def printInfo():
print("这是python函数")
printInfo()
这是python函数
可以将同一类型归类为一个函数,使繁琐的工序变得简便
例:
str01 = input("红警建造类型:")
def jiangzao():
print("兵营")
print("作战工厂")
print("核电站")
if str01 == "建筑":
jiangzao() #直接调用函数
红警建造类型:建筑
兵营
作战工厂
核电站
1、函数的参数类型、以及返回值
形参:形式参数, 定义在函数时的参数叫做形参
实参:实际参数, 实际传递的时候叫做实参
返回值:return 可以返回多个,需要用“,”隔开
def add(a, b): #a、b为形参
return a + b
num = add(1, 2) #1、2为实参
print(num)
3
2、位置参数、关键字参数
关键字参数:可以指定默认值,但必须放在参数列表的末尾
def add(a, b=5): #a为位置参数、b=5为关键字参数
return a + b
num = add(2, 4)
print(num)
6
*args: 传入多个位置参数,并将传入参数打包成元组
**kwages: 传入多个关键字参数,并将传入参数打包成字典
*arg必须放在所有关键字参数之前
def weizhi(a, b, *args, c=10, d=20):
print(a)
print(b)
print(args)
print(c)
print(d)
weizhi(100, 200, 300, 10, 20, 400, 500)
print(60 * "*")
def guanjianzi(a, b, c=10, d=20, **kwargs):
print(a)
print(b)
print(c)
print(d)
print(kwargs)
guanjianzi(11, 22, 10, 20, e=30, f=40, g=50)
100
200
(300, 10, 20, 400, 500)
10
20
************************************************************
11
22
10
20
{'e': 30, 'f': 40, 'g': 50}
常见的使用方式:def function_name(*args, **kwargs)
3、特殊参数 * 、 /
/ : 表示/前边的参数都是仅位置参数,不能使用关键字参数
*: 表示* 后边必须是关键字参数
def test_get(value, default=None, /):
return "OK"
data = test_get(1, 4)
print(data)
def test_get(value1, value2, /, *, kwd1, kwd2, ):
print("OK")
test_get(1, 2, kwd1=3, kwd2=4)
OK
OK
如果/ 前使用关键字参数、*后使用位置参数会出现TypeError
4、函数说明文档
定义函数后: 回车
"""
"""
def add(a, b):
"""
:param a:定义一个数
:param b: 再定义一个数
:return: 两数相加
"""
return a + b
5、参数、返回值注解
参数注解:在定义函数的时候,参数列表内部的参数后面,加上冒号和要传入的类型
返回值注解:-> 后面接返回值的类型
def add(a: int, b: int) -> int:
"""输入两整数后相加 """
return a + b
6、lamdba 匿名函数
省略了def声明函数的标准步骤
语法: lambda 形参 : 函数语句
add = lambda a, b: a + b #":"后相当于return
print(add(10, 10))
20