"""
# 第一题:
# 要求:请将数据读取出来,转换为以下格式
{'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 模块中的变量或者函数
"""

最新文章

  1. 树形DP+DFS序+树状数组 HDOJ 5293 Tree chain problem(树链问题)
  2. ASP.NET Core 数据保护(Data Protection)【上】
  3. ORA-04091: table xxxx is mutating, trigger/function may not see it
  4. mysql的collation
  5. MySQL max_allowed_packet设置及问题
  6. PHP获取今天、昨天、明天的日期
  7. Asp.net--Ajax前后台数据交互
  8. Spark standalone安装(最小化集群部署)
  9. thinkphp微信开发:安全模式消息加解密
  10. 从零开始学Axure原型设计(高级篇)
  11. iOS 添加导航栏两侧按钮
  12. 流式数据分析模型kafka+storm
  13. nginx https配置后无法访问,可能防火墙在捣鬼
  14. oc 快排算法
  15. C++中 return,break,continue的用法
  16. Python并发编程之学习异步IO框架:asyncio 中篇(十)
  17. Javascript 精简语法介绍
  18. ConnectionAbortedError: [WinError 10053] 你的主机中的软件中止了一个已建立的连接
  19. 经典SQL语句大全(转)
  20. 【iCore1S 双核心板】DEMO V1.0 测试程序发布

热门文章

  1. SpringBoot分布式篇Ⅷ --- 整合SpringCloud
  2. 使用H5与webGL的3D 可视化地铁展示
  3. JDBC——CreateStatement和PrepareStatement作用区别
  4. 每日一练_PAT_B1001
  5. https原理总结
  6. How to check sqlsever table data type identity status ?
  7. Go语言实现:【剑指offer】重建二叉树
  8. Imagine— 让图片再小一点点
  9. Doug Hennig的自定义 DataEnvironment 和 CursorAdapter 类文件 -- SFDataClasses
  10. VFP的13个SPT函数