6.2 Python 标准库简介:编程世界的百宝箱

news2024/12/30 2:17:19

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏:
工💗重💗hao💗:野老杂谈
⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题.
⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、应用领域等内容。
⭐️ 全流程数据技术实战指南:全面讲解从数据采集到数据可视化的整个过程,掌握构建现代化数据平台和数据仓库的核心技术和方法。
⭐️ 构建全面的数据指标体系:通过深入的理论解析、详细的实操步骤和丰富的案例分析,为读者提供系统化的指导,帮助他们构建和应用数据指标体系,提升数据驱动的决策水平。
⭐️《遇见Python:初识、了解与热恋》 :涵盖了Python学习的基础知识、进阶技巧和实际应用案例,帮助读者从零开始逐步掌握Python的各个方面,并最终能够进行项目开发和解决实际问题。

摘要

Python 标准库是每个 Python 程序员的得力助手,它提供了广泛的模块和函数,帮助我们轻松完成各种编程任务。本篇文章将通过幽默易懂的语言,详细介绍 Python 标准库的主要模块及其用法。通过丰富的代码示例和图示,帮助读者轻松掌握标准库的使用技巧。

标签: Python、标准库、编程基础、模块、代码示例


什么是 Python 标准库?

Python 标准库就像一个百宝箱,里面装满了各种工具,帮助你解决编程中的各种问题。无论是处理字符串、操作文件、还是进行数学计算,标准库都有现成的模块供你使用。

标准库的定义

Python 标准库是 Python 解释器自带的一组模块和包,这些模块提供了丰富的功能,极大地简化了编程过程。

# 例子:使用标准库模块进行基本操作
import math
import os
import datetime

print(math.sqrt(16))  # 计算平方根
print(os.getcwd())    # 获取当前工作目录
print(datetime.datetime.now())  # 获取当前时间

字符串处理模块

string 模块

string 模块提供了许多有用的字符串操作函数和常量。

import string

print(string.ascii_letters)  # 所有字母
print(string.digits)         # 所有数字
print(string.punctuation)    # 所有标点符号
re 模块

re 模块用于正则表达式操作,强大而灵活。

import re

pattern = r'\d+'
text = "There are 123 apples and 45 oranges."

numbers = re.findall(pattern, text)
print(numbers)  # 输出 ['123', '45']

文件与目录操作模块

os 模块

os 模块提供了与操作系统交互的函数,可以用于文件和目录操作。

import os

current_dir = os.getcwd()
print(f"Current directory: {current_dir}")

new_dir = os.path.join(current_dir, "new_folder")
os.makedirs(new_dir, exist_ok=True)
print(f"New directory created: {new_dir}")
shutil 模块

shutil 模块提供了高级文件操作,如复制和移动文件。

import shutil

source = "example.txt"
destination = "backup.txt"
shutil.copy(source, destination)
print(f"Copied {source} to {destination}")

数据序列化模块

json 模块

json 模块用于处理 JSON 数据格式,常用于网络通信和数据存储。

import json

data = {'name': 'Alice', 'age': 25, 'city': 'New York'}
json_string = json.dumps(data)
print(json_string)

data_loaded = json.loads(json_string)
print(data_loaded)
csv 模块

csv 模块用于处理 CSV 文件,广泛用于数据导出和导入。

import csv

data = [
    ['Name', 'Age', 'City'],
    ['Alice', 25, 'New York'],
    ['Bob', 30, 'Los Angeles']
]

with open('people.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

with open('people.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

日期与时间模块

datetime 模块

datetime 模块提供了处理日期和时间的函数。

from datetime import datetime, timedelta

now = datetime.now()
print(f"Current time: {now}")

yesterday = now - timedelta(days=1)
print(f"Yesterday: {yesterday}")

formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(f"Formatted date: {formatted_date}")
time 模块

time 模块提供了与时间相关的低级操作。

import time

start_time = time.time()
time.sleep(2)
end_time = time.time()
elapsed_time = end_time - start_time

print(f"Elapsed time: {elapsed_time} seconds")

数学与统计模块

math 模块

math 模块提供了基本的数学函数和常量。

import math

print(math.pi)        # 圆周率
print(math.e)         # 自然常数
print(math.sqrt(16))  # 平方根
print(math.factorial(5))  # 阶乘
random 模块

random 模块用于生成随机数,适用于模拟和随机抽样。

import random

print(random.randint(1, 10))  # 生成1到10之间的随机整数
print(random.choice(['apple', 'banana', 'cherry']))  # 随机选择一个元素
statistics 模块

statistics 模块提供了基本的统计函数。

import statistics

data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(statistics.mean(data))   # 平均值
print(statistics.median(data))  # 中位数
print(statistics.variance(data))  # 方差

网络编程模块

urllib 模块

urllib 模块用于处理 URL 和 HTTP 请求。

import urllib.request

url = 'http://www.example.com'
response = urllib.request.urlopen(url)
html = response.read().decode('utf-8')
print(html)
requests 模块

虽然不是标准库的一部分,但 requests 模块非常流行,用于简化 HTTP 请求。

import requests

response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())

实战演练——综合应用标准库

通过一个实际案例,进一步理解如何综合应用标准库模块。

案例:自动化处理 CSV 文件并发送邮件
  1. 从网上获取 CSV 文件数据。
  2. 处理数据,提取需要的信息。
  3. 生成报告并发送邮件。
import csv
import requests
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

# 第一步:获取 CSV 文件数据
url = 'https://example.com/data.csv'
response = requests.get(url)
csv_data = response.text

# 第二步:处理数据
lines = csv_data.splitlines()
reader = csv.reader(lines)
headers = next(reader)
data = [row for row in reader]

# 第三步:生成报告
report = "Report:\n\n"
for row in data:
    report += f"{row[0]}: {row[1]}\n"

# 第四步:发送邮件
sender_email = "your_email@example.com"
receiver_email = "receiver_email@example.com"
password = "your_password"

message = MIMEMultipart()
message['From'] = sender_email
message['To'] = receiver_email
message['Subject'] = "CSV Report"

message.attach(MIMEText(report, 'plain'))

server = smtplib.SMTP('smtp.example.com', 587)
server.starttls()
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message.as_string())
server.quit()

总结——Python 标准库的魅力

通过本文的讲解,我们了解了 Python 标准库的主要模块及其用法。标准库是每个 Python 程序员的得力助手,它提供了广泛的功能,极大地方便了编程过程。

希望你能通过本文轻松掌握标准库的使用,并在实际编程中灵活运用它们。记住,编程就像冒险,而标准库是你手中的百宝箱,利用它们,你可以解决编程中的各种难题。继续探索吧,Python 的世界还有更多有趣的内容等着你!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1991490.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT界面设计开发(Visual Studio 2019)—学习记录一

一、控件升级 简要介绍: 简单来说,控件提升就是将一个基础控件(Base Widget)转换为一个更特定、更复杂的自定义控件(Custom Widget)。这样做的目的是为了在设计界面时能够使用更多高级功能,而不…

QT下载与安装

我们要下载开源的QT,方式下载方式: 官网 登录地址:http://www.qt.io.com 点击右上角的Download. Try.按钮;进入一下画面: 如果进入的是以下画面: 直接修改网址:www.qt.io/download-dev; 改为w…

pytorch的gpu环境安装

windows系统下pytorch的gpu环境安装 安装前置说明: 要成功安装pytorch的gpu环境,需要cuda版本,python版本和pytorch版本都要相匹配才能顺利使用,cuda版本建议不要安装最新的版本,以免找不到相匹配的pytorch版本pytho…

八问八答,深入浅出搞懂Transformer内部运作原理

导读 同学们在学习Transformer时是否觉得难以理解或者很难理清其内部运作原理呢。本文将通过八个关键问题帮助大家搞懂Transformer内部工作原理,希望对大家有所帮助。 七年前,论文《Attention is all you need》提出了 transformer 架构,颠…

KVM——虚拟机的复制与克隆

目录 一. 复制虚拟机 二. 虚拟机克隆 1. 使用 virt-clone 2. 使用 virt-manager(图形界面) 3. 使用 qemu-img (磁盘镜像克隆) 一. 复制虚拟机 配置文件路径:/etc/libvirt/qemu/*.xml 磁盘镜像文件路径&#…

【扒代码】regression_head.py

import torch from torch import nnclass UpsamplingLayer(nn.Module):# 初始化 UpsamplingLayer 类def __init__(self, in_channels, out_channels, leakyTrue):super(UpsamplingLayer, self).__init__() # 调用基类的初始化方法# 初始化一个序列模型,包含卷积层、…

LeetCode 7, 703, 287

文章目录 7. 整数反转题目链接标签思路反转操作反转的数的范围 代码 703. 数据流中的第 K 大元素题目链接标签思路代码 287. 寻找重复数题目链接标签思路代码 7. 整数反转 题目链接 7. 整数反转 标签 数学 思路 反转操作 反转实际上很简单,假设要反转数字 n…

数据结构之Map与Set(上)

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 目录 二叉搜索树 Map和Set的介绍与使用 Map的常用方法及其示例 Set的常用方法及其示例 哈希表…

客户管理系统平台(CRM系统)是什么?它的核心主要解决哪些问题?

客户管理系统平台CRM是什么?客户关系管理系统CRM的核心主要解决哪些问题? CRM系统不仅仅是一套软件,更是一种策略,一种管理理念和一种企业发展方向。它通过整合客户数据、优化业务流程、提升客户体验,帮助企业在激烈的…

K8s第三节:k8s1.23.1升级为k8s1.30.0

上回书说到我们使用了kubeadm安装了k8s1.23.1,但是在k8s1.24之前还是使用docker作为容器运行时,所以这一节我打算将我安装的k8s集群升级为1.30.0版本; 1、修改containerd 配置 因为我们安装的docker自带containerd,所以我们不需要重新安装con…

蓝凌EKP二次开发资料大全 完整蓝凌二次开发资料 蓝凌 EKP开发实战教程 蓝凌OA二次开发资料大全 蓝凌OA java开发快速入门

蓝凌EKP二次开发资料大全 完整蓝凌二次开发资料 蓝凌 EKP开发实战教程 蓝凌OA二次开发资料大全 记得两年前花了非常贵的费用去现场学习的资料,把这些开发技术文档分享出来,希望通过这个资料, 为大家学习开发大大减少时间。期待大家能快速上…

《UE5_C++多人TPS完整教程》学习笔记32 ——《P33 动画蓝图(Animation Blueprint)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P33 动画蓝图(Animation Blueprint)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者…

Python实战:类

一、圆的面积、周长 class Circle:# 初始化一个类参数:rdef __init__(self,r):self.r r# 计算面积的方法def get_area(self):return 3.14*pow(self.r,2)# 计算周长的方法def get_perimeter(self):return 2*3.14*self.r#创建对象 r eval(input(请输入圆的半径&…

Vue 2 和 Vue 3 生命周期钩子

Vue 2 和 Vue 3 生命周期钩子 在 Vue.js 开发中,了解生命周期钩子对于编写有效的组件至关重要。Vue 2 和 Vue 3 在生命周期钩子上大致相同,但 Vue 3 的 Composition API 引入了一种新的方式来处理它们。这里我会概述两者的生命周期钩子,并指…

2024年8月7日(mysql主从 )

回顾 主服务器 [rootmaster_mysql ~]# yum -y install rsync [rootmaster_mysql ~]# tar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar [rootmaster_mysql ~]# tar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz [rootmaster_mysql ~]# cp -r mysql-8.0.33-linux-glibc2.…

QT找不到编辑框

问题展示: 解决办法:ALT0 然后我的变成了这种: 解决办法:文件系统改变成项目:

DNTR——F

文章目录 AbstractIntroductionContribution Related WorkAdvancements in Feature Pyramid Networks (FPNs)Coarse-to-Fine Image Partitioning in Drone Imagery DetectionDevelopments in Loss Function Approaches for Tiny Object DetectionR-CNN for Small Object Detect…

大炼模型进入尾声,“失眠”的欧洲和日本能否扳回一局?

大数据产业创新服务媒体 ——聚焦数据 改变商业 2022年末,ChatGPT-3.5的惊艳亮相,瞬间引爆了全球范围内的生成式AI(GenAI)热潮。 这场现代版的"淘金热"迅速在科技领域蔓延,尤其是在全球两大科技强国——中国…

简单分享下python打包手机app的apk

Python 把python程序打包成apk的完整步骤 1. 引言 在移动应用市场蓬勃发展的今天,开发人员常常需要将自己的Python程序打包成APK文件,以便在Android设备上运行。本文将详细介绍将Python程序打包成APK的完整步骤。 2. 准备工作 在开始打包前&#xff0c…

全网最详解LVS(Linux virual server)

目录 一、LVS(Linux virual server)是什么? 二、集群和分布式简介 2.1、集群Cluster 2.2、分布式 2.3、集群和分布式 三、LVS运行原理 3.1、LVS基本概念 3.2、LVS集群的类型 3.2.1 nat模式 3.2.2 DR模式 3.2.3、LVS工作模式总结 …