模块(time、datetime、random、sys)

发布时间 2023-06-12 21:41:28作者: 菜CAIx

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 = (微秒),

milliseconds = (毫秒), minutes =  (分钟), hours =  (小时), weeks =  (周)

日期时间 = 日期对象 +/- 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 返回操作系统平台名称