python基础day22 time和re模块
time模块(跟时间打交道的模块)
表示时间的三种方式
1. 时间戳:1970年1月1日到现在的秒数
2. 格式化的时间字符串:2023-01-01 11:11:11
3. 结构化时间:它是让计算机看的
导入time模块
impore time time.time() # 时间戳 time.sleep(3) # 睡眠3秒
python中时间日期格式化符号
%y 两位数的年份表示(00-99) %Y 四位数的年份表示 (0000-9999) %m 月份 (01-12) %d 月内的一天 (01-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 当前时区的名称 %% %号本身
结构化时间
# time.struct_time(tm_year=2023, tm_mon=6, tm_mday=9, tm_hour=10, tm_min=21, tm_sec=48, tm_wday=4, tm_yday=160, tm_isdst=0) res=time.localtime() # print(res) print(res.tm_year, res[0]) print(res.tm_mon, res[1]) print(res.tm_mday, res[2]) print(res.tm_hour, res[3]) print(res.tm_min) print(res.tm_sec) print(res.tm_wday) print(res.tm_yday) timestamp:时间戳 struct_time:结构化时间 format_string:格式化时间
时间戳-->结构化时间
#time.gmtime(时间戳) #UTC时间,与英国伦敦当地时间一致 #time.localtime(时间戳) #当地时间。例如我们现在在北京执行这个方法:与UTC时间相差8小时,UTC时间+8小时 = 北京时间 >>>time.gmtime(1500000000) time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=2, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0) >>>time.localtime(1500000000) time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=10, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0) #结构化时间-->时间戳 #time.mktime(结构化时间) >>>time_tuple = time.localtime(1500000000) >>>time.mktime(time_tuple) 1500000000.0
datetime模块
# 定义操作时间 day=7 也就是可以对另一个时间对象加7天或者减少7点 # tdelta = datetime.timedelta(days=7,hours=10,minutes=20) # tdelta = datetime.timedelta(minutes=20,seconds=10) # tdelta = datetime.timedelta(weeks=3) tdelta = datetime.timedelta(days=7, hours=10) tday = datetime.datetime.today() print("7天之后的日期是:%s" % (tday + tdelta)) print("7天之后的日期是:%s" % (tday - tdelta)) """ 日期对象 = 日期对象 +/- timedelta对象 timedelta对象 = 日期对象 +/- 日期对象 """ birthday = datetime.date(2023, 12, 21) now_date = datetime.date.today() days = birthday - now_date # days = now_date - birthday print(days) dt_today = datetime.datetime.today() dt_now = datetime.datetime.now() # 2023-06-09 11:29:59.405265 dt_utcnow = datetime.datetime.utcnow() # UTC时间与我们的北京时间cha ju print(dt_now) print(dt_utcnow)
random模块
import random print(random.random()) # 生成一个0-1之间的随机数 print(random.uniform(1, 10)) # 大于1小于3的小数 print(random.randint(1, 5)) # 大于等于1且小于等于5之间的整数 print(random.randrange(1, 10, 2)) # 大于等于1且小于10之间的奇数 print(random.choice([1, '23', [4, 5], 4, 5, 6])) # #1或者23或者[4,5] print(random.choice(['一等奖', '二等奖', '三等奖'])) # #1或者23或者[4,5] # 抽奖助手 print(random.sample([1, '23', [4, 5]], 3)) # #列表元素任意2个组合 item = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', ] res = random.shuffle(item) print(res) print(item) """生成随机验证码:生成5位的随机验证码,其中,包括数字,大写字母,小写字母的组合""" def get_code(n): code = '' # 定一个一个空字符串 for i in range(n): # 随机生成一个数字 random_int = str(random.randint(0, 9)) # 随机生成一个大写字母 random_upper = chr(random.randint(65, 90)) # A-Z # 随机生成一个小写字母 random_lower = chr(random.randint(97, 122)) # a-z # 随机出来一个数字或者字母 code += random.choice([random_int, random_upper, random_lower]) return code res=get_code(5) res=get_code(6) print(res)
sys模块
cmd.exe powershell.exe import sys # print(sys.path) print(sys.argv) # ['D:/python26/day22/04 sys模块.py'] # python36 a.py print(sys.argv[1]) print(sys.argv[2]) print(sys.argv[3]) try: res=sys.argv[2] except Exception: pass