一、python函数介绍
函数中三要素
-
函数名 必须定义
-
参数 (可选)将数据传递函数中使用
-
返回值 (可选)将函数中的数据传递外部进行使用
二、函数使用
2-1 语法格式
def 是定义函数的关键
def 函数名(参数):代码的逻辑片段return 返回值
函数的调用执行
函数名()
2-2 函数的基本定义和使用
# 函数的介绍
# 功能1
def login(name_list,password_list): # 接受参数# 函数作用域# 通过四个空格,来确认函数所执行的逻辑从哪里开始for num in range(3): # [0,3) 0,1,2name = input('请输入用户名:')password = input('请输入密码:')# 先判断用户名是否正确if name in name_list:# 在判断密码是否正确if password in password_list:print('登录成功')# 适应break关键,会结束循环,不再进行取值breakelse:print('密码不正确')else:print('用户名不正确')# 功能2
def register():name = input('请输入注册的用户名:')password = input('请输入出注册的密码:')name_list = [name]password_list = [password]# 将函数的的数据返回到外部return name_list, password_list# 功能3
def pay():print('支付')# 功能4
def order():print('下单')name_list = None
password_list = Nonewhile 1==1:num = input('1-登录 2-注册 3-支付 4-下单 5-退出程序:')if num == '1':# 函数功能的调用# namelist和password_list 是函数的参数login(name_list,password_list) # 函数名()elif num == '2':name_list, password_list = register()elif num == '3':pay()elif num == '4':order()else:break
2-3 函数参数
# 函数的介绍
# 功能1
def login(name_list,password_list): # 接受参数# 函数作用域# 通过四个空格,来确认函数所执行的逻辑从哪里开始for num in range(3): # [0,3) 0,1,2name = input('请输入用户名:')password = input('请输入密码:')# 先判断用户名是否正确if name in name_list:# 在判断密码是否正确if password in password_list:print('登录成功')# 适应break关键,会结束循环,不再进行取值breakelse:print('密码不正确')else:print('用户名不正确')# 功能2
def register():name = input('请输入注册的用户名:')password = input('请输入出注册的密码:')name_list = [name]password_list = [password]# 将函数的的数据返回到外部return name_list, password_list# 功能3
def pay():print('支付')# 功能4
def order():print('下单')name_list = None
password_list = Nonewhile 1==1:num = input('1-登录 2-注册 3-支付 4-下单 5-退出程序:')if num == '1':# 函数功能的调用# namelist和password_list 是函数的参数login(name_list,password_list) # 函数名()elif num == '2':name_list, password_list = register()elif num == '3':pay()elif num == '4':order()else:break
2-4 参数接收数据类型
# 函数参数能接受的数据类型
data_str = 'itcast'
data_list = ['hadoop', 'spark']
data_tuple = ('hadoop', 'spark')
data_set = {'hadoop', 'spark'}
data_dict = {'id': 1}def func(data):# 要求传递的数据是字典# 判断传递的数据是什么类型if type(data) == dict:# 参数的类型由传递的数据决定print(type(data), data)# 按照字典进行操作data.get('id')# 函数的调用
func(data_str)
func(data_set)
func(data_list)
func(data_tuple)
func(data_dict)
2-5 函数的返回值
# 函数的返回值
# 将一个函数内的数据返回外部使用
def add_func(a,b):# data是函数内的变量data = a+bprint(data)# 将函数内的变量值返回到函数外部return data# 在调用函数时,如果有返回值,需要在调用后定义变量接收返回值
return_data = add_func(10,20)def func(data):# 使用data变量值进行其他处理res = data *2print(res)# 将上一个函数返回值传递到当前函数内使用
func(return_data)# 返回多个值
def func():# 返回值可以是任意类型的数据# 返回值可以返回多个数据,返回多个值时,会将多个值放入元组中return 1,'张三',['asd','asd'],{'id':1,'name':'aaa'}
# 调用函数时接受返回值
return_data = func()
print(return_data) # 定义多个接收变量,分别接收不同返回值
a,b,c,d = func()
print(a)
print(b)
print(c)
print(d)def func2():data = 10+29# 没有返回值时,res变量接收到的是空值
res = func2()
print(res)
2-6 函数的文档
函数文档就是对函数的描述
类似sql中的
create table tb(
id int comment '表的id'
)comment '用户表'
# 函数文档def add_func(a,b):'''加法计算功能:param a: 接收一个数据 类型 int:param b: 接收一个数据 类型 int:return: 没有返回值'''data = a+bprint(data)add_func(10,20) # ctrl+b跳转到函数定义处,可以查看文档描述信息
2-7 函数的嵌套调用
# 函数嵌套调用
def func1():print('func1')def func2():print('func2')func1()
func2()def func3():# 函数3内使用函数1的功能func1()print('func3')# 函数3内执行函数2的功能func2()func3()# 函数的嵌套调用2
def func1():print('func1')def func2():#调用func1func1()print('func2')def func3(f):""":param f: 接收一个函数:return:"""# 调用接收到函数f()print('func3')func2()print('----------')
# 函数名当成参数传递
func3(func1)