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

【python基础语法】第8天作业练习题的更多相关文章

  1. python基础语法、数据结构、字符编码、文件处理 练习题

    考试范围 '''1.python入门:编程语言相关概念2.python基础语法:变量.运算符.流程控制3.数据结构:数字.字符串.列表.元组.字典.集合4.字符编码5.文件处理''' 考试内容 1.简 ...

  2. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  3. Python 基础语法(三)

    Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...

  4. Python 基础语法(四)

    Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...

  5. Python 基础语法(二)

    Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...

  6. Python 基础语法

    Python 基础语法 Python语言与Perl,C和Java等语言有许多相似之处.但是,也存在一些差异. 第一个Python程序 E:\Python>python Python 3.3.5 ...

  7. 吾八哥学Python(四):了解Python基础语法(下)

    咱们接着上篇的语法学习,继续了解学习Python基础语法. 数据类型大体上把Python中的数据类型分为如下几类:Number(数字),String(字符串).List(列表).Dictionary( ...

  8. python学习第五讲,python基础语法之函数语法,与Import导入模块.

    目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...

  9. python学习第四讲,python基础语法之判断语句,循环语句

    目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...

  10. Python基础语法(三)

    Python基础语法(三) 1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了.在这里提及一些需要知道的知识点. int.float.complex.bool ...

随机推荐

  1. 工具之cut

    转自http://www.cnblogs.com/dong008259/archive/2011/12/09/2282679.html cut:正如其名就是“剪”,和sed一样,一行为单位,对数据进行 ...

  2. react FileReader读取TXT文件并保存 split切割字符串 map()分别渲染切割后的数组内的所有字符串

    //class my_fileReader( e ) {         console.log(e.target.files[0]);         const reader = new File ...

  3. C语言系列之预处理指令、循环左移函数的使用(四)

    本章节将讲两个知识点 第一个知识点:常用的预处理指令 第二个知识点:循环左移右移函数 第一个知识点:预处理指令 一种预处理指令是#define,他把名字A定义为P0,当这个名字出现在源文件的任何地方时 ...

  4. 《快乐编程大本营》java语言训练班 3课:java的运算符

    第1节. 算术运算符 第2节. 递增和递减运算符 第3节. 比较运算符 第4节. 逻辑运算符 第5节. 运算符优先级 第6节. 字符串运算 http://code6g.com/pxphp/px/ban ...

  5. (5千字)由浅入深讲解动态规划(JS版)-钢条切割,最大公共子序列,最短编辑距离

    斐波拉契数列 首先我们来看看斐波拉契数列,这是一个大家都很熟悉的数列: // f = [1, 1, 2, 3, 5, 8] f(1) = 1; f(2) = 1; f(n) = f(n-1) + f( ...

  6. 全局对象的构造函数会在main函数之前执行?

    #include <iostream> using namespace std; class CTest { public: CTest() { cout << "构 ...

  7. C 语言宏定义函数编写时 do-while 的妙用和一些注意事项

    在 C 语言中,我们都知道可以用宏定义来编写函数,一般称为宏函数.如果一个宏函数比较复杂,那么在编写这样的宏函数是有一定技巧和注意事项的.文章给出一些我认为值得关注的地方,以及一些注意事项(个人建议) ...

  8. 你知道EasyX吗

    关于C++控制台上的图形界面,你知道一个东西叫做EasyX吗? 作为一个退役的OI选手(WTF?\(3^2-3^1\)年级退役?),在退役之后总想找点事情做. 开发个游戏?(我只会控制台) 学下人工智 ...

  9. 入侵检测基本准则(Basic principles of intrusion detection)【v1.0】

    所谓“入侵检测”,顾名思义,就是对入侵行为的发觉.他通过对计算机网络或计算机系统中若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象.” 但实际上,所谓的“违 ...

  10. frp内网穿透协助内网程序(如微信相关)开发

    众所周知,在本机上开发微信相关的程序,很不方便,因为拨号IP随机,而且很多端口不支持,如80,443 所以,有必要使用一台外网主机中转. frp就可以解决此问题 安装环境,外网服务器:腾讯云,cent ...