4/8 包/常用模块

1 包是模块的一个集合体,在使用包的时候也是有3个生成。

1 产生一个包的名称空间
2 执行包下的__init__.py文件,将产生的名字存放于包的名称空间中
3 在当前执行文件中拿到一个名字aaa,该名字指向包的名称空间

在生成包的时候需要在包的文件夹下面有一个__init__.py的文件。

为何要使用包

包的本质就是一个文件夹,那么文件夹唯一的功能就是将文件组织起来
随着功能越写越多,我们无法将所以功能都放到一个文件中,于是我们使用模块去组织功能,而随着模块越来越多,我们就需要用文件夹将模块文件组织起来,以此来提高程序的结构性和可维护性

使用包的注意事项

#1.关于包相关的导入语句也分为import和from ... import ...两种,但是无论哪种,无论在什么位置,在导入时都必须遵循一个原则:凡是在导入时带点的,点的左边都必须是一个包,否则非法。可以带有一连串的点,如item.subitem.subsubitem,但都必须遵循这个原则。但对于导入后,在使用时就没有这种限制了,点的左边可以是包,模块,函数,类(它们都可以用点的方式调用自己的属性)。

#2、import导入文件时,产生名称空间中的名字来源于文件,import 包,产生的名称空间的名字同样来源于文件,即包下的__init__.py,导入包本质就是在导入该文件

#3、包A和包B下有同名模块也不会冲突,如A.a与B.a来自俩个命名空间

包的文件里面需要使用的是from。。。。import ,如果是包套包的话,需要在里面使用前面这个格式。

绝对导入和相对导入

绝对导入是以glance作为起始的
相对导入,用.或者..的方式最为起始(只能在一个包中使用,不能用于不同目录内)


常用名模块
time 模块
通常来说时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。

格式化的时间字符串

结构化的时间,年月日这种的。

 

 

 print(time.time()) # 时间戳:1487130156.419527
 print(time.strftime("%Y-%m-%d %X")) #格式化的时间字符串:'2017-02-15 11:40:53'
 
 print(time.localtime()) #本地时区的struct_time
 print(time.gmtime())    #UTC时区的struct_time

格式化的字符串
# print(time.strftime('%Y-%m-%d %H:%M:%S %p'))
# print(time.strftime('%Y-%m-%d %X %p'))

# print(time.localtime()) # 上海:东八区
# print(time.localtime().tm_year)
# print(time.localtime().tm_mday)

# print(time.gmtime()) # UTC时区


datetime 模块
print(datetime.datetime.now())
print(datetime.datetime.now() + datetime.timedelta(days=3))
print(datetime.datetime.now() + datetime.timedelta(days=-3))
print(datetime.datetime.now() + datetime.timedelta(hours=3))
print(datetime.datetime.now() + datetime.timedelta(seconds=111))
current_time=datetime.datetime.now()
print(current_time.replace(year=1977))

占位符的使用
第一个%是取消第二个%号的特殊意义

random 模块

 

import random

print(random.random())#(0,1)----float 大于0且小于1之间的小数

print(random.randint(1,3)) #[1,3] 大于等于1且小于等于3之间的整数

print(random.randrange(1,3)) #[1,3) 大于等于1且小于3之间的整数

print(random.choice([1,'23',[4,5]]))#1或者23或者[4,5]

print(random.sample([1,'23',[4,5]],2))#列表元素任意2个组合

print(random.uniform(1,3))#大于1小于3的小数,如1.927109612082716


item=[1,3,5,7,9]
random.shuffle(item) #打乱item的顺序,相当于"洗牌"
print(item)
posted @ 2018-04-08 15:03  书东  阅读(116)  评论(0编辑  收藏  举报