一、python函数介绍
函数中三要素
-
函数名 必须定义
-
参数 (可选)将数据传递函数中使用
-
返回值 (可选)将函数中的数据传递外部进行使用
二、函数使用
2-1 语法格式
def 是定义函数的关键
def 函数名(参数):
代码的逻辑片段
return 返回值
函数的调用执行
函数名()
2-2 函数的基本定义和使用
# 函数的介绍
# 功能1
def login(name_list,password_list): # 接受参数
# 函数作用域
# 通过四个空格,来确认函数所执行的逻辑从哪里开始
for num in range(3): # [0,3) 0,1,2
name = input('请输入用户名:')
password = input('请输入密码:')
# 先判断用户名是否正确
if name in name_list:
# 在判断密码是否正确
if password in password_list:
print('登录成功')
# 适应break关键,会结束循环,不再进行取值
break
else:
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 = None
while 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,2
name = input('请输入用户名:')
password = input('请输入密码:')
# 先判断用户名是否正确
if name in name_list:
# 在判断密码是否正确
if password in password_list:
print('登录成功')
# 适应break关键,会结束循环,不再进行取值
break
else:
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 = None
while 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 参数接收数据类型
python
# 函数参数能接受的数据类型
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 函数的返回值
python
# 函数的返回值
# 将一个函数内的数据返回外部使用
def add_func(a,b):
# data是函数内的变量
data = a+b
print(data)
# 将函数内的变量值返回到函数外部
return data
# 在调用函数时,如果有返回值,需要在调用后定义变量接收返回值
return_data = add_func(10,20)
def func(data):
# 使用data变量值进行其他处理
res = data *2
print(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 '用户表'
python
# 函数文档
def add_func(a,b):
'''
加法计算功能
:param a: 接收一个数据 类型 int
:param b: 接收一个数据 类型 int
:return: 没有返回值
'''
data = a+b
print(data)
add_func(10,20) # ctrl+b跳转到函数定义处,可以查看文档描述信息
2-7 函数的嵌套调用
python
# 函数嵌套调用
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():
#调用func1
func1()
print('func2')
def func3(f):
"""
:param f: 接收一个函数
:return:
"""
# 调用接收到函数
f()
print('func3')
func2()
print('----------')
# 函数名当成参数传递
func3(func1)