【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 模块中的变量或者函数 """