【python基础语法】第8天作业练习题

"""
# 第一题:
# 要求:请将数据读取出来,转换为以下格式
{'data0': '数据aaa', 'data1': '数据bbb', 'data2': '数据ccc', 'data3': '数据ddd'}
# 提示:
# 可能会用到内置函数enumerate
# 注意点:读取出来的数据如果有换行符'\n',要想办法去掉。
# 第二题:
当前有一个case.txt文件,里面中存储了很多用例数据: 如下,每一行数据就是一条用例数据
要求一: 请把这些数据读取出来,到并且存到list中,格式如下:
[
{"url":"www.baidu.com","mobilephone":"12760246701","pwd":"123456"},
{"url":"www.baidu.com","mobilephone":"15678934551","pwd":"234555"},
{"url":"www.baidu.com","mobilephone":"15678934551","pwd":"234555"},
{"url":"www.baidu.com","mobilephone":"15678934551","pwd":"234555"},
{"url":"www.baidu.com","mobilephone":"15678934551","pwd":"234555"}
]
# 第三题:将上述数据再次进行转换,转换为下面这种字典格式格式
{
"data1":{"url":"www.baidu.com","mobilephone":"12760246701","pwd":"123456"},
"data2":{"url":"www.baidu.com","mobilephone":"15678934551","pwd":"234555"},
"data3":{"url":"www.baidu.com","mobilephone":"15678934551","pwd":"234555"},
"data4":{"url":"www.baidu.com","mobilephone":"15678934551","pwd":"234555"},
"data5":{"url":"www.baidu.com","mobilephone":"15678934551","pwd":"234555"}
}
提示:按行读取数据,然后使用字符串分割的方法对每一行数据进行分割,组装成字典

第四题:之前作业写了一个注册的功能,再之前的功能上进行升级,要求:把所有注册成功的用户数据放到文件中进行保存,数据存储的格式不限
提示:
每次运行程序,先去文件中读取所有注册过的用户数据,
程序运行完之后,将所有的用户数据再次写入到文件

第五题、写出模块导入的方法(至少两种),写出包导入的方法(至少两种)

"""
"""
第一题:
要求:请将数据读取出来,转换为以下格式
{'data0': '数据aaa', 'data1': '数据bbb', 'data2': '数据ccc', 'data3': '数据ddd'}
提示:
可能会用到内置函数enumerate
注意点:读取出来的数据如果有换行符'\n',要想办法去掉。
"""
# 第一题
def work1():
    # 第一步:读取数据后,每一行作为一个元素放到列表中
    with open("data.txt","r",encoding="utf8") as f:
        datas = f.readlines()
    # 第二步:将数据转换为字典
    dic = {}
    # 通过enumerate去获取列表中的数据和下标
    for index,data in enumerate(datas):
        # 构造数据的key和value
        key = "date{}".format(index)
        value = data.replace("\n","")
        # 加入到字典中
        dic[key] = value
    return dic
dic = work1()
print(dic)

# 第二题
def work2():
    # 第一步:读取数据后,每一行作为一个元素放到列表中
    with open("case.txt", "r", encoding="utf8") as f:
        cases = f.readlines()
        # print(cases)
    # 第二步:将数据转换为列表
    # 创建一个空列表
    lis = []
    # 遍历出来每一行数据
    for i in cases:
        # 将该行数据使用split按,进行分割,得到一个列表
        itme1 = i.split(",")
        # 创建一个空字典,用例存放该行数据
        dic = {}
        # 遍历分割后的列表
        for j in itme1:
            # 将遍历出来的数据,按":"进行分割,得到key和value的值,然后加入到字典中
            key = j.split(":")[0]
            value = j.split(":")[1].replace("\n","")
            dic[key] = value
        # 将该行数据加入到列表中
        lis.append(dic)
    # 完成转换之后,将转换后的数据,进行返回
    return lis
lis = work2()
print(lis)

# 第三题
def work3(lis):
    # 创建一个空字典存放数据
    dic = {}
    # 通过enumerate去获取列表中的数据和下标
    for index,data in enumerate(lis):
        # 构造数据的key
        key = "date{}".format(index+1)
        # 加入字典中
        dic[key] = data
    # 将转换之后的数据进行返回
    return dic
dic = work3(lis)
print(dic)

res = map(lambda x:{"data{}".format(x[0]+1):x[1]},enumerate(lis))
print(list(res))

# 第四题
def work3():
    # 读取文件中注册用户的数据
    with open("users.txt","r",encoding="utf8") as f:
        # 读取文件内容
        data = f.read()
        # 识别字符串中的列表
        users = eval(data)
    # 注册功能代码(上次作业写的,不需要改动))
    while True:
        # 注册功能
        username = input("请输入用户名:") # 输入账号
        for user in users: # 遍历所有账号,判断账号是否存在
            if username == user["user"]:
                print("该客户已经被注册过") # 账号已存在,请重新输入
                break
        else:
            password1 = input("请输入密码:")  # 输入密码
            password2 = input("请再次确认密码:")  # 再次输入密码
            if password1 != password2:
                print("两次输入密码不一致,请重新输入!")  # 账号和密码不一致,请重新输入
                continue
            # 账号不存在,密码不重复,则添加到账户列表中
            users.append({"user": username, "password": password2})
            # user["username"] = username
            # user["password"] = password1
            print("注册成功!")
            print(users)
            break
    # 程序结束后,将所有用户的数据写入到文件
    with open("users.txt","w",encoding="utf8") as f:
        # 将列表转换为字符串
        content = str(users)
        # 写入文件
        f.write(content)
work3()

# 第五题
"""
模块导入
方式一:import 模块名
方式二:from 模块名 import 模块中的变量或者函数

包导入:
方式一:from 包名 import 模块名
方式二:from 包名.模块名 import 模块中的变量或者函数
"""

猜你喜欢

转载自www.cnblogs.com/python-test001/p/12373592.html