专业编程基础技术教程

网站首页 > 基础教程 正文

Python启航:30天编程速成之旅(第16天)- 标准库(二)

ccvgpt 2025-03-10 12:49:45 基础教程 30 ℃

喜欢的条友记得关注、点赞、转发、收藏,你们的支持就是我最大的动力源泉。

前期基础教程:

Python启航:30天编程速成之旅(第16天)- 标准库(二)

「Python3.11.0」手把手教你安装最新版Python运行环境

讲讲Python环境使用Pip命令快速下载各类库的方法

Python启航:30天编程速成之旅(第2天)-IDE安装

【Python教程】JupyterLab 开发环境安装


Python启航:30天编程速成之旅(第16天)- 标准库(二)

glob 模块提供了一个从当前目录搜索制作文件列表的功能:glob.glob('*.ipynb') 是一个 Python 函数调用,它使用 glob 模块来查找所有匹配给定模式的文件名。在这种情况下,模式是 *.ipynb,这将匹配当前目录下所有的 Jupyter Notebook 文件。

import glob
glob.glob('*.ipynb')

math 模块可以访问浮点数学的底层 C 库函数:

import math

# 输出圆周率 π 的值
print(math.pi)

# 计算并输出 100 以 2 为底的对数
print(math.log(100, 2))

random 模块提供了进行随机选择的工具:

import random

# 从列表 ['黄金', '铂金', '白银'] 中随机选择一个元素。
print(random.choice(['黄金', '铂金', '白银']))

# 从范围 0 到 9(包括 0 和 9)中无放回地随机抽取 3 个数字。
print(random.sample(range(10), 3))

# 生成一个 [0.0, 1.0) 范围内的随机浮点数。
print(random.random())

# 从范围 0 到 9(包括 0 但不包括 10)中随机选择一个整数。
print(random.randrange(10))

statistics 模块计算数值数据的基本统计属性(平均值、中位数、方差等):

import statistics

data = [1, 3, 5, 7, 9, 10]

# 计算平均值
print(statistics.mean(data))

# 计算中位数
print(statistics.median(data))

# 计算方差
print(statistics.variance(data))

datetime 模块提供了用于以简单和复杂方式操作日期和时间的类。虽然支持日期和时间算术,但实现的重点是用于 outputformatting 和操作的高效成员提取。 该模块还支持时区感知的对象。

from datetime import date

# 这段代码会获取当前日期并将其存储在变量 now 中,然后打印出来。输出格式为 YYYY-MM-DD。
now = date.today()
print(now)

'''
使用 strftime 方法将日期格式化为一个字符串。格式化字符串中的各个部分含义如下:
%m:月份(01-12)
%d:日期(01-31)
%y:年份的最后两位(00-99)
%d:日期(01-31)
%b:月份的缩写(Jan-Dec)
%Y:完整的年份(例如 2023)
%A:星期几的完整名称(例如 Monday)
%d:日期(01-31)
%B:月份的完整名称(例如 January)
'''
print(now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B."))

# 这段代码定义了一个日期 1867-1-1,然后计算当前日期与自定义日期的天数差,并打印出来。
birthday = date(1867, 1, 1)
age = now - birthday
print(age.days)

一些 Python 用户对了解解决同一问题的不同方法的相对性能产生了浓厚的兴趣。Python 提供了一个测量工具,可以立即回答这些问题。

例如,使用 Tuples packing and unpacking 功能而不是传统的参数交换方法可能很诱人。

timeit模块很快就展示了一个适度的性能优势:

from timeit import Timer

# 定义较大的列表
list_a = list(range(10000))
list_b = list(range(10000, 20000))

# 传统方法交换列表中的元素
traditional_swap = """
temp = list_a[:]
list_a[:] = list_b[:]
list_b[:] = temp[:]
"""

# Python 特性交换列表中的元素
pythonic_swap = """
list_a[:], list_b[:] = list_b[:], list_a[:]
"""

# 设置初始状态
setup_code = f"""
list_a = {list_a}
list_b = {list_b}
"""

# 测试传统方法
traditional_timer = Timer(traditional_swap, setup_code)
print("Traditional swap time:", traditional_timer.timeit(number=1000))

# 测试 Python 特性
pythonic_timer = Timer(pythonic_swap, setup_code)
print("Pythonic swap time:", pythonic_timer.timeit(number=1000))

timeit 模块的 timeit 方法默认执行 1000000 次(可以通过 number 参数调整),并返回总执行时间(以秒为单位)。因此,输出将是两个浮点数,分别表示两种方法的总执行时间。

喜欢的条友记得关注、点赞、转发、收藏,你们的支持就是我最大的动力源泉。

Tags:

最近发表
标签列表