十四、函数
14.1、概念
函数:将多行代码写在一块,起一个名字,需要用到多行代码时,可以直接使用这个名字来代替
函数的好处:减少代码的冗余,提高程序的编写效率
14.2、函数的定义
1.将多行代码放在一起,起名字的过程,
2.函数必须先定义后调用
-
语法
def 函数名(): 函数中的代码 函数中的代码 # 1.def 是关键字 ,用来定义函数的 # 2.函数名需要遵守标识符的规则 # 3.处于def 缩进中的代码,称为函数体 # 4.函数定义时,函数体中的代码不会执行,在调用时下才会执行
-
函数定义小技巧
书写不熟练时 1.可以先不管函数,先把功能写出来 2.给多行代码起名字 3.选中多行代码,使用Tab键进行所缩进
14.3、函数的调用
1.使用多行代码的时候,称为函数调用
-
语法
函数名() # 1.函数调用的时候会执行函数体中代码 # 2.函数调用的代码,要写在函数体外面
14.4、文档注释
书写位置:在函数名的下方使用,三对双引号进行注释
作用:告诉别人这个函数如何使用,干什么的
查看:在调用时将光标放到函数名上,快捷键ctrl+q ctrl(cmd)B 转到函数声明中查看(按住ctrl(cmd)鼠标左键点击
14.5、函数的嵌套调用
在一个函数中调用另一个函数
1.函数定义不会执行函数体中的代码
2.函数调用会执行函数体中的代码
3.函数体中代码执行结束会回到函数被调用的地方继续向下
def func1():
print(1)
print('func1')
print(2)
def func2():
print(3)
func1()
print(4)
print(5)
func2()
print(6)
# 5 3 1 func1 2 4 6
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b1i0DK5X-1651067978323)(C:\Users\LIUBO\AppData\Roaming\Typora\typora-user-images\1651050477897.png)]
练习
# 通过input 输入三个人的信息,姓名年龄,存入字典,并将字典存入列表
# 遍历列表。打印信息,格式如下:
# 张三 22
# 李白 32
# 百里 24
# 1、输入三个人信息(输入input
# 2.将信息存入字典
# 3.将字典存入列表 列表.append(数据)
my_list = []
for i in range(1, 4):
my_dict = {} # 每循环一次创建一个字典,若放在外面第二个人时就会修改第一个人
name = input('请输入姓名')
age = input('请输入年龄')
my_dict['name'] = name
my_dict['age'] = age
my_list.append(my_dict)
for item in my_list: # item 是字典
print(item['name'], item['age']) # 根据字典的key获取value
def func():
my_list = [{'id': 1, 'money': 10}, {'id': 2, 'money': 20},
{'id': 3, 'money': 30}, {'id': 4, 'money': 40}]
for i in my_list: # i变量,字典类型
if i.get('id') % 2 == 0: #如果字典中id的值为偶数,money的值加10
i['money'] = i.get('money') + 10
else: #如果字典中id的值为奇数,money的值加20
i['money'] = i.get('money') + 20
print(my_list)
func()
# 能够获取测试人员信息(登录/测试)
# 获取每组测试数据的用户名,密码和而预期结果,组成数据格式进行打印
# [(),(),()] 或者[[],[],[]]
my_dict = {'登录': [{'desc': '正确的用户名和密码', 'username': 'admin', 'password': '123456', 'expect': '登录成功'},
{'desc': '错误的用户名', 'username': 'amin', 'password': '123456', 'expect': '登录失败'},
{'desc': '错误的密码', 'username': 'admin', 'password': ' 112456', 'expect': '登录失败'},
{'desc': '错误的用户名和密码', 'username': 'amin', 'password': '223456', 'expect': '登录失败'}],
'注册': [{'desc': '注册1', 'username': 'asd', 'password': '123456'},
{'desc': '注册1', 'username': 'ad', 'password': '123456'}]}
list = []
opt = input('请输入要获取的数据(登录/测试)')
if opt == '登录':
print('获取登录数据')
for d in my_dict.get('登录'): # d字典类型
my_tuple = (d.get('username'), d.get('password'), d.get('expect')) # 将数据组成元组类型(定义元组)
list.append(my_tuple) # 将元组添加到列表中
print(list)
elif opt == '注册':
print('获取注册数据')
for d in my_dict.get('注册'): # d字典类型
my_tuple = (d.get('username'), d.get('password'), d.get('expect')) # 将数据组成元组类型(定义元组)
list.append(my_tuple) # 将元组添加到列表中
print(list)
else:
print('输入错误')