0
点赞
收藏
分享

微信扫一扫

关于Python的学习记录(十四)

yundejia 2023-07-24 阅读 75

内置模块

同内置函数一样,Python 内置了非常多有意义的模块,可以节省我们造轮子的时间,将更多的精力集中在业务编程上。比如说我们需要生成随机数,Python 提供了 random 模块,比如说我们需要生成时间日期,Python 提供了 datetime 模块,下面是一个列表,大致列出了我们常用到的 Python 内置模块,以及他们具体的用途。

模块名

说明

os

提供了与操作系统交互的一些函数,例如文件、目录操作等

sys

提供了与 Python 解释器交互的一些函数,例如用于退出程序的 exit() 函数

math

提供了数学函数,例如平方、立方、三角函数、指数函数等

random

提供了生成随机数的函数。

time

提供了一些关于时间操作的函数,比如返回当前时间,使用程序睡眠一定时间等。

datetime

提供了日期和时间处理的函数,比如日期加减、时区转换等

re

提供了正则表达式的支持

json

提供了 JSON 格式的编码和解码功能

statistics

提供了众多统计函数

random

random 模块的常用函数:

  1. random(): 生成一个 [0, 1) 范围内的随机浮点数。
  2. randrange():生成范围的随机整数,下面的 randint 函数就是基于 randrange 实现的,区别是,randrange 可以只传一个参数,也可以传 2 个参数。
  3. randint(a, b): 生成一个 [a, b] 范围内的随机整数。
  4. choice(seq): 从序列 seq 中随机选择一个元素。

import random
# 生成一个 [0, 1) 范围内的随机浮点数
print(random.random())
# 生成0-9之间的随机整数
print(random.randrange(10))
# 生成一个 [1, 10] 范围内的随机整数
print(random.randint(1, 10))

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 从 lst 中随机选择一个元素
print(random.choice(lst))

math

math模块的常用函数:

  • ceil(x): 返回不小于 x 的最小整数。
  • floor(x): 返回不大于 x 的最大整数。
  • fabs(x): 返回 x 的绝对值。
  • sqrt(x): 返回 x 的平方根。

import math

# 返回不小于 x 的最小整数
print(math.ceil(3.14))		#4
# 返回不大于 x 的最大整数
print(math.floor(3.14))		#3
# 返回 x 的绝对值
print(math.fabs(-3.14))		#3.14
# 返回 x 的平方根
print(math.sqrt(9))			#3.0

time

time模块的常用函数:

  • time():返回当前时间的时间戳(自 1970 年 1 月 1 日以来的秒数)。
  • sleep(secs):使程序进入睡眠状态,单位为秒。

import time
now = time.time()
print(now)
print('准备 sleep')
print(time.sleep(5)) # 这一步会让程序阻塞 5s 才继续执行下面的代码
print('sleep 结束')

datetime

datetime 模块中比较侧重时间和日期的运算以及格式化

  • now(tz=None):返回当前的本地日期和时间,该函数会返回一个 datetime 对象。
  • utcnow():返回当前的 UTC 日期和时间,该函数会返回一个 datetime 对象。
  • strftime(format):datetime 对象中的方法,用来将 datetime 对象格式化为指定的字符串格式。
  • strptime(date_string, format):将字符串按照指定的格式转换为 datetime 对象。
  • fromtimestamp(secs):将字符串按照指定的格式转换为 datetime 对象。
  • date():返回 datetime 对象的日期部分。
  • time():返回 datetime 对象的时间部分。
  • timedelta():表示两个日期或时间之间的差异。

datetime 是 datetime 模块 中的一个类,用于表示日期和时间。datetime 类的实例可以通过 datetime 模块的 datetime() 函数创建,其构造方法如下:

datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)

示例代码

import time
# 注意 datetime 的导入方式
from datetime import datetime

local_now = datetime.now() # 返回本地时间的 datetime 对象
utc_now = datetime.utcnow()
local_now_str = local_now.strftime('%Y-%m-%d %H:%M:%S')
print(local_now_str) # 2023-05-25 15:52:11

# 将字符串转换成 datetime 对象
local_now_2 = datetime.strptime(local_now_str, '%Y-%m-%d %H:%M:%S')
print(local_now_2)		#2023-07-24 17:57:39

timestamp = time.time()
# 将时间戳转换为 datetime 对象
dt = datetime.fromtimestamp(timestamp)
print(dt)		#2023-07-24 17:57:39.815000

datetime 时间运算

datetime 对象是可以做减法来计算时间间隔的,两个 datetime 对象相减得到一个 timedelta 对象;datetime 和 timedelta 对象相互加减,可以的得另外一个全新的 datetime 对象。timedelta 是 datetime 库 中的一个类,用于表示时间间隔,可以用来进行时间的加减操作。timedelta 类的实例可以通过 datetime 模块的 timedelta() 函数创建,其构造方法如下:

datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

如何计算时间:

from datetime import datetime, timedelta

# 当前时间
now = datetime.now()
# 10 天后的时间
ten_days_later = now + timedelta(days=10)
print(ten_days_later)
# 1 小时前的时间
one_hour_ago = now - timedelta(hours=1)
print(one_hour_ago)

如何计算两个时间的间隔:

from datetime import datetime

# 两个 datetime 对象
date1 = datetime(2021, 7, 1, 0, 0, 0)
date2 = datetime(2021, 6, 1, 0, 0, 0)
# 计算它们之间的时间差
time_diff = date1 - date2
# 输出时间差的天数和秒数
print(time_diff.days, time_diff.seconds)		#30 0

使用第三方模块

包管理工具 pip 的使用

Python 标准库中的json模块在数据序列化和反序列化时性能并不是非常理想,为了解决这个问题,可以使用三方库ujson来替换json。语法如下:

pip install ujson

在默认情况下,pip 会访问https://pypi.org/simple/来获得三方库相关的数据,但是国内访问这个网站的速度并不是十分理想,因此国内用户可以使用豆瓣网提供的镜像来替代这个默认的下载源,操作如下所示。

pip install -i  https://pypi.doubanio.com/simple/ ujson

更新ujson三方库。

pip install -U ujson

删除ujson三方库。

pip uninstall -y ujson

举报

相关推荐

0 条评论