python模块
1.模块:用来从逻辑上组织python代码(包括:变量,函数,类),实现一个功能。本质上是以.py结尾的python文件(eg:文件名test.py,模块名:test)
包:用来从逻辑上组织模块,本质上是目录(必须带有一个__init__.py文件)
2.导入方法:
import module_name #将模块下的所有代码进行解释
import module_name1,module_name2
from module_name import var1,func1 #只将模块下的var1变量,func1函数进行解释
from module_name import func1 as func_m1 #当想要导入的函数名与该文件下的某一函数同名时,对要导入的函数重新命名
3.import本质
导入模块的本质:把python文件解释一遍
导入包的本质,:执行该包下的__init__.py文件
4.导入优化
在一个python文件中多次调用另一个文件的某一变量、函数,可以用如下导入方法:
from module_name import func
#相当于直接这个函数加载到当前文件中,避免多次搜索
5.模块的分类
a.标注库
1.time
在python中表示时间的有:1)时间戳time.time() #返回的是自1970年1月1日至今经过了的时间,以s为单位
2)格式化的时间表示:“2018-1-26 11:18:36”
3)元组,共9个元素
time
1 T=time.time() #时间戳
2 day=T/3600/24/365
3 print(T,day)
1516951907.5625267 48.102229438182604
1 time.sleep(2)
2 print(time.timezone/3600) #时区
-8.0
1 t1=time.localtime() #元组形式——显示本地时间
2 print(t1)
3 print(time.gmtime()) #元组形式——将本地(当前)时间转换为标准时间
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=26, tm_hour=15, tm_min=31, tm_sec=49, tm_wday=4, tm_yday=26, tm_isdst=0)
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=26, tm_hour=7, tm_min=31, tm_sec=49, tm_wday=4, tm_yday=26, tm_isdst=0)
1 #时间戳格式-->元组格式
2 print(time.localtime(129843823))
3 print(time.gmtime(23423425))
time.struct_time(tm_year=1974, tm_mon=2, tm_mday=12, tm_hour=3, tm_min=43, tm_sec=43, tm_wday=1, tm_yday=43, tm_isdst=0)
time.struct_time(tm_year=1970, tm_mon=9, tm_mday=29, tm_hour=2, tm_min=30, tm_sec=25, tm_wday=1, tm_yday=272, tm_isdst=0)
1 #struct_time-->时间戳
2 t1=time.localtime()
3 t2=time.mktime(t1)
4 print(t2)
1516951909.0
1 #struct_time-->格式化输出
2 t3=time.strftime('%Y-%m-%d %H:%M:%S',t1)
3 print(t3)
2018-01-26 15:31:49
1 #格式化输出-->元组
2 t4=time.strptime(t3,'%Y-%m-%d %H:%M:%S')
3 print(t4)
4 print(t4.tm_yday)
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=26, tm_hour=15, tm_min=31, tm_sec=49, tm_wday=4, tm_yday=26, tm_isdst=-1)
26
1 #struct_time-->string
2 t5=time.asctime(t1)
3 print(t5)
Fri Jan 26 15:31:49 2018
1 #时间戳-->string
2 print(time.ctime())
Fri Jan 26 15:31:49 2018
datetime
1 import datetime
2 print(datetime.datetime.now()) #获取当前时间
3 print(datetime.datetime.now()+datetime.timedelta(3)) #3天后
4 print(datetime.datetime.now()+datetime.timedelta(-3)) #3天前
5 print(datetime.datetime.now()+datetime.timedelta(hours=3)) #3小时后
6 print(datetime.datetime.now()+datetime.timedelta(minutes=-3)) #3分钟前
2018-01-26 15:29:47.819468
2018-01-29 15:29:47.819468
2018-01-23 15:29:47.819468
2018-01-26 18:29:47.819468
2018-01-26 15:26:47.819468
random
1 import random
2 print(random.random()) #0~1之间的浮点数
3 print(random.uniform(1,5)) #[a,b)区间内的浮点数
4 print(random.randint(1,5)) #[a,b]之间随机整数
5 print(random.randrange(1,5)) #[a,b)之间随机取整数
6 print(random.choice("hello")) #从字符串、列表、元组中随机取值
7 print(random.choice([1,24,5,3,5,6,7,8]))
8 print(random.choice((1,2,3,4,6,7,8,9)))
9 print(random.sample("hello",3)) #从字符串、列表、元组中随机取n个值
10 print(random.sample([1,24,5,3,5,6,7,8],3))
11 list1=[1,2,4,5,6,8,9,0]
12 random.shuffle(list1) #洗牌
13 print(list1)
0.3853941518983539
1.3685647167041068
5
4
l
5
1
['e', 'l', 'o']
[6, 24, 3]
[8, 4, 2, 9, 6, 5, 0, 1]
b.开源模块
c.自定义模块