Python学习 8day__高级语法
常用模块
- calendar
- datetime
- timeit
- os
- shutil
- zip
- math
- string
time 模块
时间戳
一个时间表示方法,不同语言,可以表示为整数或者浮点数
是1970年1月1日0时0分0秒到现在经历的秒数
如果表示的时间是1970年以前或是太遥远的未来,可能会出现异常
32位操作系统只能够支持到2038年
UTC时间
UTC时间是世界协调时间
中国是UTC+8 东八区
1 import time 2 3 # timezone:获取当前所在时区和UTC时间相差的秒数,在没有夏令时的情况下 4 # altzone:获取当前所在时区和UTC时间相差的秒数,有夏令时的情况下 5 # daylight:测当前是否是夏令时时间状态 0表示是 6 print(time.timezone) 7 print(time.daylight) 8 9 # time:得到时间戳 10 print(time.time()) 11 12 # localtime:得到当前时间的时间结构 13 # 可以通过点号操作符得到相应的属性元素的内容 14 t = time.localtime() 15 print(t) 16 print(t.tm_hour) 17 18 # asctime:返回元组的正常字符串化之后的时间格式 19 t = time.localtime() 20 tt = time.asctime(t) 21 print(tt) 22 23 # ctime:获取字符串化的当前时间 24 t = time.ctime() 25 print(t) 26 27 # mktime:使用时间元组获取对应的时间戳 28 # 返回值:浮点数时间戳 29 t = time.localtime() 30 ts = time.mktime(t) 31 print(ts) 32 33 #clock: 获取cpu时间 3.0-3.3python版本直接使用,,3.6调用有问题 34 35 # sleep:使程序进入睡眠,n秒后继续 36 print("(*-*)") 37 #time.sleep(5) 38 print("休息五秒在打印") 39 40 # strftime:将时间元组转换为自定义的字符串格式 41 42 # 把时间表示为 年月日小时分钟 43 time.strftime("%Y{0}%m{1}%d{2} %H{3}%M").format('年', '月', '日', ':')
datetim模块
datatinme提供日期和时间的运算和表示
import datetime # datetime.date: 一个理想的日期,提供year,month,day属性 dt = datetime.date(2018,7,25) print(dt) print(dt.day) print(dt.year) print(dt.month) # datetime.time: 提供一个理想的时间 # datetime.datetime: 提供日期和时间的组合
datetime 常用类方法
today
now
utcnow
fromtimestamp:从时间戳返回本地时间
1 from datetime import datetime 2 dt = datetime(2018,7,25) 3 print(dt.today()) 4 print(dt.now()) 5 print(dt.fromtimestamp(time.time())) 6 # datetime.timedelta: 提供一个时间差,时间长度 7 from datetime import datetime, timedelta 8 9 t1 = datetime.now() 10 print(t1.strftime("%Y-%m-%d %H:%M:%S")) 11 # td表示一小时的时间长度 12 td = timedelta(hours = 1) 13 # 当时间加上时间间隔后,把得到的一小时后的时间格式化输入、 14 print((t1+td).strftime("%Y-%m-%d %H:%M:%S"))
timeit 时间测量工具
def p(): time.sleep(3.6) t1 = time.time() p() print(time.time() - t1) # 如果单纯比较生成一个列表的时间,可能很难实现 # 利用timeit调用代码,执行100000次,查看运行时间 import timeit c = ''' sum = [] for i in range (1000): sum.append(i) ''' #t1 = timeit.timeit(stmt="[i for i in range (1000)]", number=100000) #t2 = timeit.timeit(stmt=c, number=100000) #print(t1) #print(t2)
timeit 可以执行一个函数,来测量一个函数的执行时间
1 def doIt(): 2 num=3 3 for i in range(num): 4 print(i) 5 print(timeit.timeit(stmt=doIt,number=10))
calendar模块
与日历有关的模块
1 import calendar 2 3 # calendar: 获取一年的日历字符串 4 # 可选参数 5 # w = 每个日期之间的间隔字符数 6 # l = 每周所占的行数 7 # c = 每个月之间的间隔字符数 8 cal = calendar.calendar(2017,w=2) 9 print(cal) 10 print(type(cal)) 11 12 # prcal:直接打印日历 13 calendar.prcal(2018) 14 15 # isleap:判断某一年是否闰年 16 print(calendar.isleap(2000)) 17 18 # leapdays:获取指定年份之间的闰年个数 19 # 前一个参数要小于后一个参数 20 print(calendar.leapdays(1999, 2999)) 21 22 # month: 获取某个月日历字符串 23 # 格式:calendar.month(年份,月份) 24 mm = calendar.month(2018, 9) 25 print(mm) 26 27 # prmonth:直接打印整个月的日历 28 # 格式:calendar.prmonth(年份,月份) 29 calendar.prmonth(2018,3) 30 31 # monthrange:获取一个月的第一天是星期几,和天数,默认从0到6表示周一到周日 32 # 格式:calendar.monthrange(年份,月份) 33 a,b = calendar.monthrange(2018, 9) 34 print(a) 35 print(b) 36 37 # monthcalendar: 返回一个月每天的矩阵列表 38 # 格式:calendar.monthcalendar(年份,月份) 39 m = calendar.monthcalendar(2018, 9) 40 print(m) 41 42 # weekday:获取星期几 43 # 格式:calendar.weekday(年份,月份,日) 44 print(calendar.weekday(2018, 9, 2))