模块(time、datetime、random、sys)
time模块
表示时间的三种方式:
1.时间戳 >>>> timestamp
2.格式化的时间字符串:2023-06-09 20:53:43 >>>> format_string
3.结构化时间:它一般不是让人看的,给计算机看的 >>>> struct_time
导入模块:
1 import time
1.time.time()
时间戳,计算1970年到现在多少s
2.time.sleep()
括号内可以填写数字,当代码走到这里时就会按照括号内填写的数字停止多少秒
3.time.strftime()
格式化时间,括号里面填写格式化符号后,输出当前时间
格式化符号:
%y 两位数的年份表示(0-99) %Y 四位数的年份表示(000-9999)
%m 月份(01-12) %d 月内中的一天(多少号)(0-31)
%H 24小时制时间(0-23) %I 12小时制小时数(01-12)
%M 分钟数(00-59) %S 秒(0-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 当前时区名称 %% 输出结果是%和后面的
4.time.localtime()
结构化时间,输出结果如下:
1 import time 2 res = time.localtime() 3 print(res) 4 # time.struct_time(tm_year=2023, tm_mon=6, tm_mday=12, tm_hour=17, tm_min=4, tm_sec=40, tm_wday=0, tm_yday=163, tm_isdst=0)
表示结果如下:
5.结构化时间和时间戳的相互转换
1.时间戳 >>>>结构化时间
1.time.gmtime(时间戳) # UTC时间,与伦敦当地时间一致
2.time.localtime(时间戳) # 当地时间,北京时间
2.结构化时间 >>>> 时间戳
time.mktime(结构化时间)
datetime模块
1.datatime.date.today()
格式化输出今天的日期,如,2023-06-12
2.datatime.datatime.today()
格式化输出的时候精确到秒,如 :2023-06-12 19:32:34.289237
# now也是一样的功能
3.获取日期的某一部分
例如:
1 import datetime 2 res = datetime.datetime.today() 3 print(res.year) # 2023 年 4 print(res.month) # 6 月 5 print(res.day) # 12 日 6 print(res.weekday()) # 0 获取星期(weekday星期是0-6) 0表示周一 7 print(res.isoweekday) # 1 获取星期(weekday星期是1-7) 1表示周一
4.datatime.timedelta()
用于计算时间差,可以推算某个日期多少小时或分钟之前后的日期
括号内的等式就是所需计算的时间days = (天数) 、seconds = (秒), microseconds = (微秒),
日期时间 = 日期对象 +/- timedelta对象
timedelta对象 = 日期对象 +/-日期对象
例如,七天后的日期是:
1 import datetime 2 now_time = datetime.date.today() 3 time7 = now_time + datetime.timedelta(days=7) 4 print(time7) # 2023-06-19
random模块(随机)
1.random.random()
生成一个0-1之间的随机数
2.random.uniform(n,m)
随机生成n到m不包括n,m的一个数
3.random.randint(n,m)
随机生成n到m包括n,m的一个整数
4.random.randrange(n,m,x)
随机生成n到m包括n,m的步长为x的数
5.random.choice( [x, y, z, ... ] )
随机取出字典里的一个元素,这个元素可以为任意类型
6.random.sample([x, y, z, ... ],i)
随机以列表的形式取出 i 个元素
7.random.shuffle( [x, y, z, ... ] )
将列表里的元素随机打乱
8.生成验证码(小练习)
1 import random 2 def suiji(n): 3 daying = '' 4 for i in range(n): 5 no1 = str(random.randint(0, 9)) 6 no2 = chr(random.randint(65, 90)) # 生成ASCII表位数如何转换为a-z 7 no3 = chr(random.randint(97, 122)) 8 new = random.choice([no1, no2, no3]) 9 daying = daying +new 10 return daying 11 12 print(suiji(5))
sys模块
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1)
sys.version 获取Python解释程序的版本信息
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称