day01先睹为快

一、概述

python,进来非常火爆的一门编程语言,在尝试了一些编程语言之后,在熟悉了一系列python基础之后,决定以其为主要工具开展工作,于是拿起《python 编程》,跟我一起走进python的编程世界吧

首先一起构建一个保存和记录信息的数据库,通过一步步编程实现:交互式编程、命令行工具,控制台界面,GUI和简单的网页界面。一路下来熟悉数据表示、对象持久化和面向对象编程等相关概念。

二、任务概述

由于工作需求,要求记录员工的信息,通过程序来管理这些员工信息

1、表示记录

python中表示数据的方式很多,一般会使用列表和字典

1)列表

xxho=["小小海鸥",26,8000,"IT"]

yhm=["张家辉",44,9000,"hardware"]

以上就创建了两条记录,每条记录包含了四个属性的列表【姓名、年龄、工资、职业】,通过列表的索引访问这些属性,对这些属性可以进行后续的操作

xxho=["小小海鸥",26,8000,"it"]
yw=["叶问",44,92000,"咏春"]

#获通过碎银取对应的属性
print(xxho)
print(yhm) print(xxho[1]) #获取xxho对象的年龄属性,并在控制台输出 print(yw[0]) #获取yhm对象的name属性,并在控制台输出

2)数据库列表

目前为止仅仅是创建了两个列表变量,不是数据库,因此创建一个新列表person来存储这两个变量,这个新的person列表就是数据库,通过对这个新列表进行相应的操作实现对数据的增删改查

 1 xxho=["小小海鸥",26,8000,"it"]
 2 yw=["叶问",44,92000,"咏春"]
 3 
 4 #获通过碎银取对应的属性
 5 
 6 print(xxho[1]) #获取xxho对象的年龄属性,并在控制台输出
 7 print(yhm[0]) #获取yhm对象的name属性,并在控制台输出
 8 
 9 #创建一个新的person列表
10 person=[xxho,yhm]
11 
12 #通过对应的相对位置来获取值
13 print(person[0][0])  #获取xxho的name属性
14 
15 #通过for循环来处理每一条记录
16 
17 for person in people:
18     print(person[0])  #获取每个对象的名字
19     person[2]*=1.20  #每个人的工资涨幅20%

以上我们就可以保存和修改相应的人员信息,实现了信息的管理,但是列表中的人员信息只能暂时存储的对象,当pytho程序运行结束后就消失了,每次想要修改对应的属性时,必须重复写入修改的代码,所以还有很大的改善和优化空间。

而且我们访问对象对应的属性是通过对应的列表索引,所以每次都要确认下索引和属性的对应关系。

(3)针对列表存在的这些缺点,python字典可以完美解决以上问题

通过字典存储人员的信息和查看对应的属性

1 #创建字典对象
2 xxho={"name":"小小海鸥","age":26,"pay":8000,"job":"IT"}
3 zjh={"name":"张家辉","age":44,"pay":82000,"job":"actor"}
4 
5 #获得字典对应的值   通过key访问value
6 print(zjh["name"])
7 print(zjh["age"])
8 print(zjh["pay"])

创建字典几种方法

 1 #1、直接通过键值对和{}创建
 2 xxho={"name":"小小海鸥","age":26,"job":"IT"}
 3 
 4 #通过key访问value
 5 print(xxho["name"])
 6 print(xxho["age"])
 7 print(xxho["job"])
 8 
 9 #2、通过dict关键字创建
10 yw=dict(name="叶问”,age=24,pay=3200,job="咏春")
11 print(yw)
12 
13 #3、创建空字典,一个个添加对应的属性
14 
15 lxl={}
16 lxl["name"]="李小龙"
17 lxl["age"]=80
18 lxl["pay"]=12000
19 
20 print(lxl)

(4)字典的字典

以上创建的字典仅仅是两个字典对象,同样创建一个字典列表,存储这两个字典对象构建数据库

 1 #创建字典对象
 2 xxho={"name":"小小海鸥","age":26,"pay":8000,"job":"IT"}
 3 yw={"name":"叶问","age":44,"pay":82000,"job":"咏春"}
 4 
 5 db={}
 6 
 7 db["xxho"]=xxho
 8 db["yw"]=yw
 9 
10 #获取yw的名字
11 print(db["yw"]["name"])

2、持久存储记录

以上应用字典的方法存储表示记录数据库,为使得人员信息持久化,需要将人员信息保存在某种类型的文件当中

1)创建一个initdata.py文件

 1 #记录信息
 2 bob={"name":"bob smith","age":36,"pay":3000,"job":"dev"}
 3 xxho={"name":"小小海鸥","age":26,"pay":8000,"job":"IT"}
 4 yw={"name":"叶问","age":36,"pay":3000,"job":"咏春"}
 5 
 6 
 7 #创建数据库
 8 db={}
 9 db["bob"]=bob
10 db["xxho"]=xxho
11 db["yw"]=yw
12 
13 if __name__=="__main__":  
14     for key in db:
15         print(key,"==>",db[key])

2)格式化数据脚本  

将存储在内存中的数据,写入到文件当中,以便于永久保存

创建一个make_db_file.py文件

 1 """
 2 将内存数据库对象保存到文件当中,假定不使用“endrec.”,“enddb.”和“==>”
 3 """
 4 
 5 dbfilename="people_file"
 6 ENDDB="enddb."
 7 ENDREC="endrec."
 8 RECSEP="=>"
 9 
10 def storDbase(db,dbfilename=dbfilename):
11     """
12     将数据库保存到文件当中
13     :param db:要保存的db字典
14     :param dbfilename:保存的文件
15     :return:
16     """
17     with open(dbfilename,mode="w",encoding="utf-8") as f:
18         for key in db:
19             f.write(key+"\n")
20             for key,value in db[key].items():
21                 f.write(key+RECSEP+repr(value)+"\n")
22             f.write(ENDREC+"\n")
23         f.write(ENDDB)
24 
25 def loadDbase(dbfilename):
26     db={} #保存字典
27     rec = {} #存储每个人都的信息
28     with open(dbfilename,mode="r",encoding="utf-8") as f:
29         for key in f:
30             key=key.strip()
31             if key ==ENDDB:
32                 return db
33             elif key==ENDREC:
34                 rec={}
35                 continue
36             elif RECSEP in key:
37                 k,value=key.split(RECSEP)
38                 rec[k]=value
39             else:
40                 db[key]=rec
41 
42 
43 
44 
45 
46 if __name__=="__main__":
47     from initdata import db
48     storDbase(db)
49     print(loadDbase(dbfilename))

3)载入数据  创建dump_db_file.py文件

1 from make_db_file import loadDbase
2 
3 db=loadDbase()  # 通过loadDbase()方法将文件中的内容加载到字典
4 for key in db:
5     print(key,"==>",db[key])
6 print(db["yw"]["name"])

4)更新数据   创建update_db_file.py

先从文件中加载数据,然后对字典进行修改,最后再写入到文件当中,完成文件数据的更新

1 from make_db_file import loadDbase,storDbase
2 db=loadDbase()  #加载数据
3 db["yw"]["age"]=100   #修改数据
4 db["xxho"]["pay"]=10000
5 print(db)
6 storDbase(db)  #再次保存数据

猜你喜欢

转载自www.cnblogs.com/xiaoxiaohaiou/p/11294711.html