当前位置: 首页 > news >正文

Python个人学习笔记(15):模块(time)

本章主要内容:
1.time模块(sleep
2.datetime模块
3.random模块
4.序列化-pickle模块
5.序列化-json模块
6. hashilib模块
7. shutil模块
8. logging模块
9.异常处理
10. traceback
11.zipfile模块
12.正则表达式
13.re模块
14.os模块
15.sys模块
16.模块和包
17.第三方模块安装和使用

一、time

(一)模块介绍

模块其实就是我们把公用的功能代码写入在一个py文件中,在其他模块中可以随意的使用该文件中的代码。
导入一个模块的语法
1.import 模块
2.from 模块 import 功能

import time # 导入一个模块整体
from time import sleep # 从一个模块中导入一个具体的功能

用哪个都行

(二)time

1. sleep

我们一般会使用time模块让程序休息n秒,或者计算简单的时间差。

import time
print("你好")
time.sleep(3) # 暂停三秒
print("你才好呢")

爬虫中会用到,用于降低程序执行的频率
爬虫程序模拟:

while True:
    print("抓取百度的信息")
    time.sleep(1)

2. time.time():时间戳

选取一个时间点作为零点,从零点开始的秒数作为时间,即数字类型的时间。

代码:

print(time.time())

结果:

1741767846.205992
# 距离零点1741767846.205992秒

可以用于计算时间差
代码:

start = time.time()
for i in range(10000):
    print(i)
end = time.time()
print(end - start)

结果:

0.027585983276367188
# 这个程序花了0.027585983276367188秒

二、datetime(重要)

常用于处理时间

(一)datetime.now:得到系统时间

得到系统时间
代码:

from datetime import datetime
print(datetime.now())

结果:

2025-03-12 16:41:47.828275

也可以打出指定时间
代码:

print(datetime(2018,1,2,12,12,13))

结果:

2018-01-02 12:12:13

(二)计算时间差

代码:

t1 = datetime(2018,1,2,12,30,00)
t2 = datetime(2018,1,4,14,30,00)
diff = t2 - t1
print(diff)

结果:

2 days, 2:00:00
# 两天两小时

还能得到一共差了多少秒
代码:

print(diff.total_seconds())

结果:

180000.0

(三)t.strftime、t.strptime:时间的格式化

t.strftime(格式化形式)
代码:

t = datetime.now()
print(t)
print(t.strftime("%Y年%m月%d日%H小时%M分钟%S秒")) # 把时间格式化成一个字符串

结果:

2025-03-12 16:54:27.546551
2025031216小时54分钟27

不用记,需要用再查

例:让用户输入两个时间,计算时间差
代码:

s1 = input("请输入第一个时间(yyyy-mm-dd hh:mm:ss):")
s2 = input("请输入第二个时间(yyyy-mm-dd hh:mm:ss):")
# 把字符串转化为时间
t1 = datetime.strptime(s1, "%Y-%m-%d %H:%M:%S") # p:parse
t2 = datetime.strptime(s2, "%Y-%m-%d %H:%M:%S") # 格式部分注意中英文符号的区别
print(t2-t1)

结果:

请输入第一个时间(yyyy-mm-dd hh:mm:ss):2025-01-23 12:13:24
请输入第二个时间(yyyy-mm-dd hh:mm:ss):2025-02-04 12:12:12
11 days, 23:58:48

datetime:年月日 时分秒
date:年月日(新版没有这个模块)
time:时分秒

必须要掌握的内容:
1. now():系统时间
2. datetime(year, month, day, hour, min, second)
3. strftime(“%Y-%m-%d %H:%M:%S”):时间格式化成字符串
4. strptime(str, “%Y-%m-%d %H:%M:%S”):把字符串转化成时间

三、random

random.random:生成(0,1)内的随机小数
代码:

import random
print(random.random())
print(random.random())
print(random.random())

结果:

0.6940466062205409
0.6733916751508989
0.7445562466157682

random.uniform:生成一个开区间范围的随机小数

代码:

print(random.uniform(5,9))

结果:

7.821629111940486

可以用于发红包
random.randint:生成一个闭区间范围的随机整数
代码:

print(random.randint(3,8))

结果:

3

random.choice:从列表中随机选择一个

lst = ["张无忌",'周杰伦','潘玮柏','赵四']
print(random.choice(lst))

random.sample:从列表中随机选择一部分(用得不如randint多)

lst = ["屠龙刀",'倚天剑','500金币','青龙偃月刀','溜溜球']
# 每次随机爆出两件装备
print(random.sample(lst,2))

练习:随机生成四位验证码
四位验证码,一个一个的生成,可能会有数字、大小写字母
代码:

def rand_num():
    return str(random.randint(0, 9))

def rand_upper():
    return chr(random.randint(65, 90)) # chr可以让一个数字变成字母

def rand_lower():
    return chr(random.randint(97, 122)) # 数字是既定的ascii码排列

def rand_verify_code(n=4): # n默认为4,循环四次
    lst = [] # 准备一个接收下面循环出来的值的列表
    for i in range(n):
        which = random.randint(1, 3) # 上述三种类型中随机出一个
        if which == 1: # 随机数字
            s = rand_num()
        elif which == 2: # 随机一个大写字母
            s = rand_upper()
        elif which == 3:
            s = rand_lower()
        lst.append(s)
    return ''.join(lst)

print(rand_verify_code())

相关文章:

  • 司南评测集社区 2 月上新一览!
  • Flutter 小技巧之通过 MediaQuery 优化 App 性能
  • 严格把控K8S集群中的操作权限,为普通用户生成特定的kubeconfig文件
  • C++和标准库速成(一)——HelloWorld和名称空间
  • 【从零开始学习计算机科学】编译原理(二)高级编程语言及其语法描述
  • Go红队开发—web网络编程
  • TCP三次握手
  • 前馈神经网络 - 自动梯度计算
  • Mac 如何在idea集成SVN
  • JAVA SE 4.Java各版本特性
  • 如何通过自动化测试提升DevOps效率?
  • Dify后端结构与二次开发指南(一)
  • 《PYTHON 语言程序设计》2018版 第1章第21题改进中(十)做到这,这个题下轮再说吧
  • 物联网(IoT)技术在水电站、光伏电站和风电场中的应用
  • 【Node.js】--- win11安装 Node.js
  • 【调研】olmOCR解析PDF
  • c++领域展开第十六幕——STL(vector容器的了解以及模拟实现、迭代器失效问题)超详细!!!!
  • 买瓜 第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 A 组
  • linux 的免密切换用户PAM配置
  • 【最后203篇系列】014 AI机器人-1
  • 上海徐汇 “家 + 书屋”,创新服务广大家庭
  • 《缶翁的世界》首发:看吴昌硕王一亭等湖州籍书画家的影响
  • 水果预包装带来的环境成本谁来分担?
  • 上海青少年书法学习园开园:少年以巨笔书写《祖国万岁》
  • 中科院合肥物质院迎来新一届领导班子:刘建国继续担任院长
  • 复旦一校友捐赠1亿元,却不留名