模块详解

什么是模块?

  常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。

  1.使用python编写的代码(.py文件)

  2.已被编译为共享库或DLL的C 或者C++扩展

  3. 包好一组模块的包

  4. 使用C编写并链接到python解释器的内置模块

常用模块

collections模块

在内置数据类型(dict、list、set、tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。

1.namedtuple: 生成可以使用名字来访问元素内容的tuple

2.deque: 双端队列,可以快速的从另外一侧追加和推出对象

3.Counter: 计数器,主要用来计数

4.OrderedDict: 有序字典

5.defaultdict: 带有默认值的字典

这个只需了解一下就行了,不用深究

python3.6+版本字典开始变得有序

 

时间模块

推迟运行

  time.sleep()

时间戳

  time.time()

结构化时间

  time.asctime()   如果不传参数,直接返回当前那时间的格式化串

时间戳 --> 结构化时间

  time.gmtime(时间戳)    time.localtime (时间戳)

结构化时间 --> 时间戳

  time.mktime(结构化时间) 

结构化时间 --> 字符串时间

  time.strftime('格式定义','结构化时间')   结构化时间参数若不传,则显示当前时间 

字符串时间 --> 结构化时间

  time.strptime('时间字符串,字符串对应格式')

  time.strptime ('2018-08-08','%Y-%m-%d')

索引(Index) 属性(Attribute) 值(Values)
0 tm_year(年) 比如2018
1 tm_mon(月) 1-12
2 tm_mday(日) 1-31
3 tm_hour(时) 0-23
4 tm_min(分) 0-59
5 tm_sec(秒) 0-60
6 tm_wday(weekday) 0 - 6(0表示周一)
7 tm_yday(一年中的第几天) 1-366
8 tm_isdst(是否是夏令时) 默认为0


时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的

 几种格式之间的转化

 计算时间差

 random模块

import random

随机数: 在某个范围内取到每一个值的概率是相同的

随机小数

  1. 0-1之内的随机小数  random.random() 这个表示0-1之间的随机小数

  2. 1-5之间的随机小数  random.unifrom(1-5) 

随机整数

  random.randint(1,2) 1-2之间的随机整数 [1-2]范围内随机取

  random.randrange(1,2) 不包含2在内的随机整数

  random.randrange(1,10,2) 1-10 之间随机取奇数 

随机抽取

  l = [1,2,3,'aaa',('wahaha','qqxing ')]

  random.choice(l)   choice 随机抽取一个值

  random.sample(1,10) 随机抽取多个值

打乱顺序

  lst = [1,2,3,'aaa',('wahaha','qqxing ')]

  random.shuffle(lst)

  print(lst)   在原列表的基础上做乱序; 只能操作列表

  

序列化模块

什么叫做序列化 ----- 将原本的字典,列表等内容转换成一个字符串的过程就叫做序列化

序列化的目的

1. 以某种存储形式使自定义对象持久化

2. 将对象从一个地方传递到另一个地方

3. 使程序更具维护性

json

json.dumps ()

dic = {'k1':'v1','k2':'v2','k3':'v3'}

str_dic = json.dumps(dic)

 序列化: 将一个字典转换成一个字符串

print(type(str_dic),str_dic)

 json转换完成的字符串类型的字典中的字符串是由" " (双引号)表示

 

 json.loads()

dic = {'k1':'v1','k2':'v2','k3':'v3'}

dic2 = json.loads(str_dic)

print(dic2)

反序列化: 将一个字符串格式的字典转化成一个字典

用json的loads功能处理的字符串类型的字典中的字符串必须由""表示

 

# f = open('json_file','w')
# dic = {'k1':'v1','k2':'v2','k3':'v3'}
# json.dump(dic,f)
# f.close()
'''dump 方法接收一个文件句柄,直接将字典转换成json字符串写入文件'''

 

# f = open('json_file')
# dic2 = json.load(f)
# f.close()
# print(dic2)
'''load方法接收一个文件句柄,直接将文件中的json字符串转换成数据结构返回'''

 

猜你喜欢

转载自www.cnblogs.com/ALADL/p/9445054.html