zoukankan      html  css  js  c++  java
  • 【python基础语法】第8天作业练习题

    """
    # 第一题:
    # 要求:请将数据读取出来,转换为以下格式
    {'data0': '数据aaa', 'data1': '数据bbb', 'data2': '数据ccc', 'data3': '数据ddd'}
    # 提示:
    # 可能会用到内置函数enumerate
    # 注意点:读取出来的数据如果有换行符'
    ',要想办法去掉。
    # 第二题:
    当前有一个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
    注意点:读取出来的数据如果有换行符'
    ',要想办法去掉。
    """
    # 第一题
    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("
    ","")
            # 加入到字典中
            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("
    ","")
                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 模块中的变量或者函数
    """
  • 相关阅读:
    Zabbix常见问题手册
    Shell脚本常用语句
    ZABBIX定义宏变量
    Zabbix4.0系统配置事件通知
    c++ 八皇后问题(转载)
    (c++)数据结构顺序表编码练习
    JPA的事务注解@Transactional使用总结(转)
    小程序开发流程(java后端)
    连接远程数据库,得到数据插入本地表中
    php复制目录
  • 原文地址:https://www.cnblogs.com/python-test001/p/12373592.html
Copyright © 2011-2022 走看看