文章目录
前言
一、时间与日期处理
1、time 模块
2、datetime 模块
二、随机数与数据生成
3、random 模块
三、操作系统交互
4、os模块
5、sys模块
四、文件与目录操作
6、shutil模块
五、数据序列化与持久化
7、shelve 模块
六、配置管理
8、configparser 模块
七、安全与加密
9、hashlib模块
八、进程管理
10、subprocess模块
九、日志记录
11、logging模块
十、文本处理
12、re 模块
学习建议
结语
前言
Python是一种强大且易于学习的编程语言。通过这个21天的计划,我们将逐步深入函数简单介绍。无论你是初学者还是有一定基础的开发者,这个计划都将帮助你巩固和扩展你的Python知识。
在学习本篇之前,我们先复习一下前面的内容:
day1:Python下载和开发工具介绍
day2:数据类型、字符编码、文件处理
day3:基础语法与课外练习
day4:函数简单介绍
day5:模块与包
一、时间与日期处理
1、time 模块
功能:提供与时间相关的函数,如获取当前时间戳、格式化时间等。
常用函数:
time.time():返回当前时间的时间戳(秒数)。
time.sleep(seconds):暂停程序执行指定的秒数。
time.strftime(format, tuple):将时间元组格式化为字符串。
time.strptime(string, format):将字符串解析为时间元组。
拓展:了解时间戳、时间元组、UTC时间等概念。
学习目标:能够获取当前时间,进行时间格式转换,并实现简单的定时任务。
示例:
import time
timestamp = time.time()
print(f"当前时间戳: {timestamp}")
time.sleep(2) #暂停两秒
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(f"格式化后的时间: {formatted_time}")

2、datetime 模块
功能:提供更高级的日期和时间处理功能,包括日期、时间、时间间隔等。
常用类:
datetime.datetime:表示日期和时间。
datetime.date:表示日期。
datetime.time:表示时间。
datetime.timedelta:表示时间间隔。
常用方法:
datetime.datetime.now():获取当前日期和时间。
datetime.datetime.strptime(string, format):将字符串解析为datetime对象。
datetime.datetime.strftime(format):将datetime对象格式化为字符串。
datetime.timedelta(days=x, seconds=y):创建一个时间间隔对象。
拓展:学习时区处理、日期计算等高级用法。
学习目标:能够创建、格式化、比较和计算日期和时间。
示例:
import datetime
now = datetime.datetime.now()
print(f"当前日期和时间: {now}")
future = now + datetime.timedelta(days=7)
print(f"一周后的日期和时间: {future}")

二、随机数与数据生成
3、random 模块
功能:生成伪随机数。
常用函数:
random.random():生成0到1之间的随机浮点数。
random.randint(a, b):生成a到b之间的随机整数(包含a和b)。
random.choice(sequence):从序列中随机选择一个元素。
random.shuffle(list):将列表中的元素随机排序。
拓展:了解随机数种子、概率分布等概念。
学习目标:能够生成随机数,用于模拟、游戏、数据分析等场景。
示例:
import random
random_number = random.randint(1, 100)
print(f"随机数: {random_number}")
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(f"打乱后的列表: {my_list}")

三、操作系统交互
4、os模块
功能:提供与操作系统交互的函数,如文件和目录操作、环境变量访问等。
常用函数:
os.getcwd():获取当前工作目录。
os.chdir(path):改变当前工作目录。
os.mkdir(path):创建目录。
os.makedirs(path):递归创建目录。
os.rmdir(path):删除空目录。
os.remove(path):删除文件。
os.rename(old, new):重命名文件或目录。
os.path.exists(path):检查路径是否存在。
os.path.join(path1, path2, …):拼接路径。
os.listdir(path):列出目录中的文件和子目录。
os.environ:访问环境变量。
拓展:学习文件权限、进程管理等高级用法。
学习目标:能够进行文件和目录操作,访问环境变量,编写跨平台代码。
示例:
import os
current_dir = os.getcwd()
print(f"当前工作目录: {current_dir}")
new_dir = os.path.join(current_dir, "new_directory")
os.makedirs(new_dir, exist_ok=True) # exist_ok=True 防止目录已存在时报错

5、sys模块
功能:提供对Python运行时环境的访问,如命令行参数、标准输入输出等。
常用属性和函数:
sys.argv:命令行参数列表。
sys.stdin:标准输入。
sys.stdout:标准输出。
sys.stderr:标准错误输出。
sys.exit(code):退出程序。
sys.path:模块搜索路径。
拓展:了解标准输入输出重定向、异常处理等高级用法。
学习目标:能够处理命令行参数,控制程序输入输出,管理模块搜索路径。
示例:
import sys
print(f"命令行参数: {sys.argv}")
# 示例:从标准输入读取一行数据
# line = sys.stdin.readline().strip()
# print(f"你输入的是: {line}")

四、文件与目录操作
6、shutil模块
功能:提供高级的文件操作功能,如复制、移动、删除文件和目录。
常用函数:
shutil.copy(src, dst):复制文件。
(此处原内容 shutil.copytree(src:不完整,推测可能是 shutil.copytree(src, dst) 用于递归复制目录)
五、数据序列化与持久化
7、shelve 模块
功能:提供简单的持久化存储方式,以键值对形式存储Python对象。
常用函数和操作:
shelve.open(filename):打开一个shelve文件。
shelf[‘key’] = value:存储数据。
value = shelf[‘key’]:读取数据。
del shelf[‘key’]:删除数据。
shelf.close():关闭shelve文件。
拓展:了解shelve文件的内部结构、并发访问等高级用法。
学习目标:能够使用shelve模块存储和读取数据,实现简单的数据持久化。
示例:
import shelve
with shelve.open('my_data') as db:
db['name'] = 'Charlie'
db['age'] = 40
with shelve.open('my_data') as db:
print(f"Name: {db['name']}, Age: {db['age']}")

六、配置管理
8、configparser 模块
功能:用于读取和写入配置文件。
常用类和方法:
configparser.ConfigParser():创建一个ConfigParser对象。
config.read(filename):读取配置文件。
config.get(section, option):获取配置项的值。
config.set(section, option, value):设置配置项的值。
config.add_section(section):添加一个section。
config.write(file):将配置写入文件。
拓展:了解配置文件的格式、变量插值等高级用法。
学习目标:能够读取和写入配置文件,实现应用程序的配置管理。
示例:
import configparser
config = configparser.ConfigParser()
config['DEFAULT'] = {
'ServerAliveInterval': '45',
'Compression': 'yes',
'CompressionLevel': '9'
}
config['bitbucket.org'] = {}
config['bitbucket.org']['User'] = 'hg'
config['topsecret.com'] = {}
topsecret = config['topsecret.com']
topsecret['Host Port'] = '50022' # mutates the parser
topsecret['ForwardX11'] = 'no' # same here
config['DEFAULT']['ForwardX11'] = 'yes'
with open('example.ini', 'w') as configfile:
config.write(configfile)

七、安全与加密
9、hashlib模块
功能:提供各种哈希算法,用于数据完整性校验和密码存储。
常用函数:
hashlib.md5(data):创建MD5哈希对象。
hashlib.sha256(data):创建SHA256哈希对象。
hash_object.update(data):更新哈希对象。
hash_object.hexdigest():获取哈希值的十六进制表示。
拓展:了解哈希算法的原理、加盐、密码存储的最佳实践。
学习目标:能够使用哈希算法进行数据完整性校验和密码存储。
示例:
import hashlib
data = "Hello, world!"
hash_object = hashlib.sha256(data.encode('utf-8'))
hex_digest = hash_object.hexdigest()
print(f"SHA256哈希值: {hex_digest}")

八、进程管理
10、subprocess模块
功能:允许你创建新的进程,连接到它们的输入/输出/错误管道,并获取它们的返回码。
常用函数:
subprocess.run(command, capture_output=True, text=True):运行命令并获取结果。
subprocess.Popen(command, stdin, stdout, stderr):创建一个子进程。
拓展:了解进程间通信、管道、错误处理等高级用法。
学习目标:能够创建子进程,执行外部命令,并获取命令的输出。
示例:
import subprocess
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
print(f"命令输出: {result.stdout}")

如果提示错误:FileNotFoundError: [WinError 2] 系统找不到指定的文件,将 代码换成如下即可:
import subprocess
result = subprocess.run(['dir'], capture_output=True, text=True, shell=True)
print(result.stdout)

九、日志记录
11、logging模块
功能:提供灵活的日志记录功能,用于记录程序运行时的信息。
常用函数:
logging.basicConfig(level=logging.INFO):配置日志记录器。
logging.debug(message):记录调试信息。
logging.info(message):记录一般信息。
logging.warning(message):记录警告信息。
logging.error(message):记录错误信息。
logging.critical(message):记录严重错误信息。
拓展:了解日志级别、日志格式、日志处理器等高级用法。
学习目标:能够使用logging模块记录程序运行时的信息,方便调试和维护。
示例:
import logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logging.info("程序开始运行")
try:
result = 10 / 0
except ZeroDivisionError as e:
logging.error(f"发生错误: {e}")
logging.info("程序运行结束")

十、文本处理
12、re 模块
功能:提供正则表达式操作,用于文本匹配、搜索、替换等。
常用函数:
re.search(pattern, string):在字符串中搜索匹配的模式。
re.match(pattern, string):从字符串的开头匹配模式。
re.findall(pattern, string):查找所有匹配的模式。
re.sub(pattern, replacement, string):替换匹配的模式。
re.compile(pattern):编译正则表达式,提高效率。
拓展:学习正则表达式的语法、分组、回溯等高级用法。
学习目标:能够使用正则表达式进行文本匹配、搜索、替换等操作。
示例:
import re
text = "My email is example@example.com"
pattern = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
match = re.search(pattern, text)
if match:
print(f"找到的邮箱地址: {match.group()}")

学习建议
循序渐进:按照模块的分类和难度,逐步学习。
多做练习:编写代码,使用模块解决实际问题。
查阅文档:熟悉官方文档,深入理解模块细节。
项目实践:尝试在小型项目中应用所学模块。
持续学习:Python生态系统不断发展,保持学习的热情。
结语
通过这个21天的Python计划,我们涵盖了常用模块介绍。希望这些内容能帮助你更好地理解和使用Python。继续学习和实践,你将成为一名优秀的Python开发者!
📢 注意啦!文末有彩蛋!参与评论就有机会把这本好书抱回家~动动手指,说不定下个锦鲤就是你!赠书福利
作者:互联网搬砖工老肖