Python 21天学习计划:深度解析常用模块

文章目录

  • 前言
  • 一、时间与日期处理
  • 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开发者!

    📢 注意啦!文末有彩蛋!参与评论就有机会把这本好书抱回家~动动手指,说不定下个锦鲤就是你!赠书福利

    作者:互联网搬砖工老肖

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python 21天学习计划:深度解析常用模块

    发表回复