【python基础语法】第7天作业练习题
阅读原文时间:2023年07月10日阅读:1

import keyword
'''

第一题:简单题

1、什么是全局变量?
2、什么是局部变量?
3、函数内部如何修改全局变量(如何声明全局变量 )?
4、写出已经学过的所有python关键字,分别写出用途?

第二题:数据转换

现在有以下数据, li1 = ["{'a':11,'b':2}", "[11,22,33,44]"]
需要转换为以下格式: li1 = [{'a': 11, 'b': 2}, [11, 22, 33, 44]]
请封装一个函数,按上述要求实现数据的格式转换

第三题:数据转换

有一组用例数据如下:

cases = [
['case_id', 'case_title', 'url', 'data', 'excepted'],
[1, '用例1', 'www.baudi.com', '001', 'ok'],
[4, '用例4', 'www.baudi.com', '002', 'ok'],
[2, '用例2', 'www.baudi.com', '002', 'ok'],
[3, '用例3', 'www.baudi.com', '002', 'ok'],
[5, '用例5', 'www.baudi.com', '002', 'ok'],
]

需要转换为以下格式

res1 = [
{'case_id': 1, 'case_title': '用例1', 'url': 'www.baudi.com', 'data': '001', 'excepted': 'ok'},
{'case_id': 4, 'case_title': '用例4', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'},
{'case_id': 2, 'case_title': '用例2', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'},
{'case_id': 3, 'case_title': '用例3', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'},
{'case_id': 5, 'case_title': '用例5', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'}
]

要求:封装一个函数,完成上述数据转换的功能,并且将case_id大于3的用例数据过滤出来,得到如下结果

res = [
{'case_id': 4, 'case_title': '用例4', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'},
{'case_id': 5, 'case_title': '用例5', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'}
'''
'''

第一题:简单题

1、什么是全局变量?
直接定义在文件中的变量,叫做全局变量,在该文件任何地方都能够访问
2、什么是局部变量?
定义在函数内部的变量叫做局部变量
3、函数内部如何修改全局变量(如何声明全局变量 )?
声明全局变量:
global关键字:将函数内部的局部变量转换为全局变量
修改全局变量:
使用nonlocal可以在嵌套函数内部修改外部函数的局部变量的值
"""
"""

第二题:数据转换

现在有以下数据, li1 = ["{'a':11,'b':2}", "[11,22,33,44]"]
需要转换为以下格式: li1 = [{'a': 11, 'b': 2}, [11, 22, 33, 44]]
请封装一个函数,按上述要求实现数据的格式转换
'''

第二题

data = ["{'a':11,'b':2}", "[11,22,33,44]"]
def work2():
new_data = []
for i in data:
res = eval(i)
new_data.append(res)
return new_data
li1 = work2()
print(li1)

第三题

cases = [
['case_id', 'case_title', 'url', 'data', 'excepted'],
[1, '用例1', 'www.baudi.com', '', 'ok'],
[4, '用例4', 'www.baudi.com', '', 'ok'],
[2, '用例2', 'www.baudi.com', '', 'ok'],
[3, '用例3', 'www.baudi.com', '', 'ok'],
[5, '用例5', 'www.baudi.com', '', 'ok'],
]

def work3(cases):
# 创建一个新列表
new_cases = []
# 获取新数据的key
title = cases[0]
# 遍历所有的数据
for data in cases[1:]:
# 将遍历的数据和key进行聚合打包,并转换为字典
c = dict(zip(title,data))
print(c)
# 判断转换后的数据,放到信列表中
if c["case_id"] > 3:
new_cases.append(c)
# 返回所有转换之后的结果
return new_cases
res = work3(cases)
print(res)

方式二:

def work3(cases):
# 创建一个新列表
new_cases = []
# 获取新数据的key
title = cases[0]
# 遍历所有的数据
for data in cases[1:]:
# 将遍历的数据和key进行聚合打包,并转换为字典
c = dict(zip(title,data))
# 将转换后的数据,放到新列表中
new_cases.append(c)
# 使用fitter过滤器结果
# lambda后面跟函数的匿名参数x说明需要一个参数
# 冒号后面是匿名函数的返回值,返回参数
# new_cases,是需要传递的数据,字典参数
def func(x):
return x["case_id"] > 3
result = filter(func,new_cases)
# result = filter(lambda x:x["case_id"]>3,new_cases)
return result

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器