1.今日大纲
- 规范化开发
- time模块
- datetime模块
- random模块
2.具体内容
- 规范化开发
-
time模块
-
表示时间的三种方式:
-
时间戳:
- 通常来说,表示的是从1970年1月1日00:00:00开始按秒计算的偏移量,float类型
-
时间元组(struct_time):
- 共有9个元素(年,月,日,时,分,秒,一年中第几周,一年中第几天)
-
格式化时间字符串
python中时间日期格式化符号: %y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H 24小时制小时数(0-23) %I 12小时制小时数(01-12) %M 分钟数(00=59) %S 秒(00-59) %a 本地简化星期名称 %A 本地完整星期名称 %b 本地简化的月份名称 %B 本地完整的月份名称 %c 本地相应的日期表示和时间表示 %j 年内的一天(001-366) %p 本地A.M.或P.M.的等价符 %U 一年中的星期数(00-53)星期天为星期的开始 %w 星期(0-6),星期天为星期的开始 %W 一年中的星期数(00-53)星期一为星期的开始 %x 本地相应的日期表示 %X 本地相应的时间表示 %Z 当前时区的名称 %% %号本身
import time #(线程)推迟指定的时间运行,单位为秒 time.sleep(2) #时间戳 time.time() #格式化时间字符串类型: print(time.strftime('%y-%m-%d %H:%M%S')) ret = time.strftime('%y{}%m{}%d{} %H:%M%S') print(ret.format('年','月','日')) #时间元组 print(time.localtime()) #time.struct_time(tm_year=2019, tm_mon=12, tm_mday=9, tm_hour=16, tm_min=7, tm_sec=16, tm_wday=0, tm_yday=343, tm_isdst=0) #几种格式之间的转换 #时间戳--->格式化时间 timestamp = time.time() #时间戳转化成结构化时间 st = time.localtion(timestamp) #结构化时间转化成格式化时间 ft = time.strftime('%y-%m-%d %H:%M%S',st) print(ft) #格式化时间--->时间戳 ft = time.strftime('%y-%m-%d %H:%M%S') #格式化时间转化成结构化时间 st = time.strptime(ft,'%y-%m-%d %H:%M%S') #结构化时间转化成时间戳 timeatamp = time.mktime(st) print(timeatamp)
#计算时间差 import time true_time = time.mktime(time.strptime('2017-09-11 08:30:00','%Y-%m-%d %H:%M:%S')) now_time = time.mktime(time.strptime('2017-12-21 12:25:31','%Y-%m-%d %H:%M:%S')) dif_time = now_time - true_time #将时间戳转化成元组时间 struct_time = time.gmtime(dif_time) print(f'过去了{struct_time.tm_year-1970}年{struct_time.tm_mon-1}月{struct_time.tm_mday-1}天{struct_time.tm_hour}小时{struct_time.tm_min}分钟{struct_time.tm_sec}秒')
-
-
-
datetime模块
- 可直接调整到指定的:年,月,日,时,分,秒等
- 将时间戳转化成时间
import datetime #现在的时间 time_now = datetime.datetime.now() print(time_now) #只能调整的字段:weeks,days,hours,minutes,seconds print(time_now + datetime.timedalta(weeks = 3)) print(time_now + datetime.timedalta(weeks = 13)) #可直接调整到指定的,年,月,日,时,分,秒,等 print(time_now.replace(year = 1979,month = 12,day = 12)) #将时间戳转化成时间 print(datetime.date.fromtimestamp(4456787654))
-
random模块
import random #大于0小于1之间的 小数 print(random.random()) #大于1小于6的 小数 print(random.uniform(1,6)) #随机整数 #大于等于1且 小于等于 5的 整数 print(random.randint(1,5)) #大于等于1且 小于 10的 奇数 print(random.randint(1,10,2)) #随机选择一个返回(可加参数,参数为返回的个数,以列表返回) print(random.choice([1,24,'qww','rrr'])) print(random.sample([['one','two','erf','rt'],3])) #打乱列表的顺序 item = [i for i in range(5)] random.shuffle(item) print(item)
- 生成随机验证码
def v_code(amount): code = '' for i in range(amount): num = random.randint(1,9) upper_char = chr(random.randint(65,90)) lower_char = chr(random.randint(97,122)) ret = random.choice([num,lower_char,upper_char]) code = ''.join(code,str(ret)) return code ret = v_code(4) print(ret)