day7作业:函数的作业域 及内置函数的使用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43264177/article/details/102758895

第一题:简单题

1、什么是全局变量?

2、什么是局部变量?

3、函数内部如何修改全局变量(如何声明全局变量 )?

4、写出已经学过的所有python关键字,分别写出用途?

第二题:数据转换

现在有以下数据, li1 = ["{‘a’:11,‘b’:2}","[11,22,33,44]"]

需要转换为以下格式: li1 = [{‘a’:11,‘b’:2},[11,22,33,44]]

请封装一个函数,按上述要求实现数据的格式转换

第三题:数据转换

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 第一题
# 1.直接定义在py文件(模块)中的遍历叫做寿 全局变量,全局变量在该文件中任意地方都可以访问
# 2.定义在函数中的变量,叫做局部变量,局部变量只有在该函数内部才能访问
# 3.在函数中定义(或修改)全局变量,需要使用global进行声明
# 4.已经学过的python关键字

"""
学过的:22个
False:bool数据类型
True:bool数据类型
None:表示数据为空

and:逻辑运算符:与
or:逻辑运算符:或
not:逻辑运算符:非

is:身份算符
in:成员运算符

del:删除数据

pass:表示通过(一般用来占位的)

if elif else:条件判断

while:条件循环
for:遍历循环
break:用来终止循环的
contiune:中止当前本轮循环,开启下一轮循环

def:定义函数
return:函数返回值
global:定义全局变量
nonlocal:嵌套函数中修改外部作用域的值
lambda:定义匿名函数

# 还没学的:13个
as,assert,calss,except,finally,
from,import,raise,try,with,
yield,async,await
"""
# 第二题
# 现有以下数据
li = ["{'a':11,'b':2}", "[11,22,33,44]"]

# 分析:这是一个列表,列表里面有两个字符串,"{'a':11,'b':2}"这个字符串是一个字典,"[11,22,33,44]"这个字符串是一个列表
# 有eval函数,它可以识别python中的表达式,
# 需要转换成以下格式:
# li=[{'a':11,'b':2},[11,22,33,44]]
# 请封装一个函数,按上述要求实现数据的格式转换

def work2(data):
    # 创建一个新列表
    new_list = []
    # 遍历列表中的数据
    for i in data:
        res=eval(i)
        # 将数据转换后放入新的列表
        new_list.append(res)
    # 返回转换后的数据
    return new_list

print(work2(li))

运行结果:
在这里插入图片描述

# 第三题
# 现有一组用例数据如下:
cases = [
    ['case_id', 'case_title', 'url', 'data', 'excepted'],
    [1, '用例1', 'www.baidu.com', '001', 'ok'],
    [4, '用例4', 'www.baidu.com', '002', 'ok'],
    [2, '用例2', 'www.baidu.com', '002', 'ok'],
    [3, '用例3', 'www.baidu.com', '002', 'ok'],
    [5, '用例5', 'www.baidu.com', '002', 'ok'],
]
# 需要转换成以下格式
res1 = [
    {'case_id': 1, 'case_title': '用例1', 'url': 'www.baidu.com', 'data': '001', 'excepted': 'ok'},
    {'case_id': 4, 'case_title': '用例4', 'url': 'www.baidu.com', 'data': '002', 'excepted': 'ok'},
    {'case_id': 2, 'case_title': '用例2', 'url': 'www.baidu.com', 'data': '002', 'excepted': 'ok'},
    {'case_id': 3, 'case_title': '用例3', 'url': 'www.baidu.com', 'data': '002', 'excepted': 'ok'},
    {'case_id': 5, 'case_title': '用例5', 'url': 'www.baidu.com', 'data': '002', 'excepted': 'ok'}
]

# 分析:这是一个嵌套列表,['case_id','case_title','url','data','excepted']第一列当作键, [1,'用例1','www.baidu.com','001','ok']当作值,把它成字典格式,
#      用第一列和其它聚合打包,就可以得到下面的格式

# 封装一个函数,完成上述数据转换的功能,并将并case_id大于3的用例数据过滤出来,得到如下结果
res2 = [
    {'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'}
]
# 方式一:不使用filter
def work3_1(cases):
    # 创建一个新的列表
    new_cases = []
    # 获取新数据的key(通过下标获得title)
    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


res3 = work3_1(cases)
print("  ")
print(res3)

运行结果:
在这里插入图片描述

# 方式二:使用filter
def work3_2(cases):
    # 创建一个新的列表
    new_cases = []
    # 获取新数据的key(通过下标获得title)
    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)

        # 使用filter过滤结果
        def func(x):
            return x['case_id'] > 3

        result = filter(func, new_case)
        # result=filter(lambda x:x['case_id'>3,new_cases])
        # 返回转换之后的结果
        return new_cases

res4 = work3_2(cases)
print("  ")
print(res4)

猜你喜欢

转载自blog.csdn.net/weixin_43264177/article/details/102758895
今日推荐