Python开发-模块开发和常用模块

模块(Module)是一个包含Python定义和语句的文件,模块可以包含函数、类、变量等,用于组织和重用代码。模块的主要作用包括:

(1)代码组织:将相关的函数、类等组织到一个模块中,使代码结构更清晰、易于管理和维护。

(2)代码重用:模块可以被其他Python程序导入和使用,避免了重复编写相同功能的代码。

(3)命名空间:模块提供了一个独立的命名空间,避免了命名冲突。

下面是一个简单的模块示例:

创建一个名为examples05_1.py的文件,内容如下:

def greet(name):
    print(f"Hello, {name}!")

def add_numbers(a, b):
    return a + b

PI = 3.14159

我们新建另一个python文件examples05_2.py,我们可以导入和使用examples05_1.py中定义的函数和变量:

#模块示例

import examples05_1 as my_module

my_module.greet("Alice")
result = my_module.add_numbers(10, 20)
print(result)
print(my_module.PI)

输出:

Hello, Alice!
30
3.14159

除了自定义模块外,Python还提供了大量内置模块和第三方模块,如:

  • math:提供数学函数和常量。
  • random:生成随机数。
  • datetime:处理日期和时间。
  • os:与操作系统交互,执行文件和目录操作。
  • requests:发送HTTP请求,与Web服务交互。
  • re:提供了正则表达式的功能,用于文本匹配和替换。
  • json:提供了处理 JSON 数据的功能

1、math模块

Python中math模块提供的数学函数和常量的用法。

(1)常量:math.pi:圆周率π的近似值。math.e:自然常数e的近似值。

示例:

import math

print(math.pi)  # 输出: 3.141592653589793
print(math.e)   # 输出: 2.718281828459045

(2)三角函数:math.sin(x):计算x的正弦值,x为弧度制。math.cos(x):计算x的余弦值,x为弧度制。math.tan(x):计算x的正切值,x为弧度制。math.degrees(x):将弧度制的角度x转换为度数。math.radians(x):将度数x转换为弧度制。

示例:

import math

angle_degrees = 45
angle_radians = math.radians(angle_degrees)

print(math.sin(angle_radians))  # 输出: 0.7071067811865476
print(math.cos(angle_radians))  # 输出: 0.7071067811865476
print(math.tan(angle_radians))  # 输出: 0.9999999999999999

(3)指数和对数函数:math.exp(x):计算e的x次幂。math.log(x[, base]):计算x的自然对数,如果提供了base,则计算以base为底的x的对数。math.pow(x, y):计算x的y次幂。math.sqrt(x):计算x的平方根。

示例:

import math

print(math.exp(1))  # 输出: 2.718281828459045
print(math.log(10)) # 输出: 2.302585092994046
print(math.log(8, 2)) # 输出: 3.0
print(math.pow(2, 3)) # 输出: 8.0
print(math.sqrt(16))  # 输出: 4.0

(4)其他函数:math.ceil(x):返回大于或等于x的最小整数。math.floor(x):返回小于或等于x的最大整数。math.fabs(x):返回x的绝对值。

示例:

import math

print(math.ceil(3.2))   # 输出: 4
print(math.floor(3.8))  # 输出: 3
print(math.fabs(-5))    # 输出: 5.0

以上只是math模块提供的部分函数和常量,该模块还包含许多其他数学计算相关的函数和常量。math 模块还提供了许多其他数学计算的函数和常量,如双曲函数、特殊函数等。这些函数和常量在科学计算、数据分析等领域非常有用。

2、random模块

Python中random模块生成各种随机数。

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

例如:

import random
print(random.random())  # 输出: 0.7382605019196689 (每次运行结果可能不同)

(2)random.randint(a, b): 生成一个 [a, b] 范围内的随机整数

例如:

import random
print(random.randint(1, 10))  # 输出: 6 (每次运行结果可能不同)

(3)random.choice(seq): 从序列 seq 中随机选择一个元素

例如:

import random
fruits = ['apple', 'banana', 'orange', 'grape']
print(random.choice(fruits))  # 输出: 'orange' (每次运行结果可能不同)

(4)random.shuffle(seq): 将序列 seq 中的元素随机打乱

例如:

import random
numbers = [1, 2, 3, 4, 5]
random.shuffle(numbers)
print(numbers)  # 输出: [3, 1, 5, 2, 4] (每次运行结果可能不同)

(5)random.sample(population, k): 从总体 population 中随机选择 k 个不重复的元素

例如:

import random
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(random.sample(numbers, 3))  # 输出: [4, 1, 8] (每次运行结果可能不同)

(6)random.uniform(a, b): 生成一个 [a, b] 范围内的随机浮点数

例如:

import random
print(random.uniform(1.0, 5.0))  # 输出: 3.7514837188738517 (每次运行结果可能不同)

这些函数可以满足大多数生成随机数的需求。random 模块还提供了一些其他的函数,如 random.gauss() 用于生成符合高斯分布的随机数,random.expovariate() 用于生成符合指数分布的随机数等。

在实际应用中,随机数在模拟、游戏、加密、数据分析等领域都有广泛的应用。使用 random 模块可以方便地生成各种类型的随机数。

3、datetime模块

Python中random模块用来处理日期和时间。

(1)datetime.now(): 获取当前的日期和时间

例如:

from datetime import datetime
now = datetime.now()
print(now)  # 输出: 2023-03-18 14:30:45.123456 (当前的日期和时间)

(2)datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0): 创建一个指定日期和时间的 datetime 对象

例如:

from datetime import datetime
dt = datetime(2023, 3, 18, 12, 30, 0)
print(dt)  # 输出: 2023-03-18 12:30:00

(3)datetime.strftime(format): 将 datetime 对象格式化为指定格式的字符串

例如:

from datetime import datetime
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))  # 输出: 2023-03-18 14:30:45

(4)datetime.strptime(date_string, format): 将指定格式的字符串解析为 datetime 对象

例如:

from datetime import datetime
dt = datetime.strptime("2023-03-18 12:30:00", "%Y-%m-%d %H:%M:%S")
print(dt)  # 输出: 2023-03-18 12:30:00

(5)timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0): 表示时间间隔

例如:

from datetime import datetime, timedelta
now = datetime.now()
one_week_later = now + timedelta(weeks=1)
print(one_week_later)  # 输出: 2023-03-25 14:30:45.123456 (一周后的日期和时间)

(6)date(year, month, day): 表示日期

例如:

from datetime import date
today = date.today()
print(today)  # 输出: 2023-03-18

(7)time(hour=0, minute=0, second=0, microsecond=0): 表示时间

例如:

from datetime import time
t = time(12, 30, 0)
print(t)  # 输出: 12:30:00

这些只是 datetime 模块的一部分功能。datetime 模块还提供了许多其他的类和函数,用于处理日期、时间、时间间隔等。在实际应用中,如日期计算、格式化、解析等操作都会用到 datetime 模块。

3、os模块

Python 的 os 模块提供了一系列与操作系统交互的功能,包括执行文件和目录操作。以下是一些常见的示例:

(1)os.getcwd(): 获取当前工作目录的路径

例如:

import os
print(os.getcwd())  # 输出: /Users/username/Documents (当前工作目录的路径)

(2)os.chdir(path): 改变当前工作目录到指定路径

例如:

import os
os.chdir("/Users/username/Desktop")
print(os.getcwd())  # 输出: /Users/username/Desktop (改变后的工作目录)

(3)os.listdir(path): 列出指定路径下的文件和目录

例如:

import os
print(os.listdir("/Users/username/Desktop"))  # 输出: ['file1.txt', 'file2.pdf', 'folder1'] (Desktop 目录下的文件和目录列表)

(4)os.path.exists(path): 检查指定路径是否存在

例如:

import os
print(os.path.exists("/Users/username/Desktop/file1.txt"))  # 输出: True 或 False

(5)os.system(command): 执行系统命令并返回命令的退出状态

例如:

import os

exit_status = os.system('dir')
print(exit_status)  # 输出命令的退出状态

(6)os.environ: 一个包含所有环境变量的字典

import os

print(os.environ['PATH'])  # 输出 PATH 环境变量的值

这些只是 os 模块中的一部分功能,它还提供了许多其他有用的操作系统交互功能,如文件操作、进程管理、权限管理等。使用 os 模块可以方便地编写与操作系统相关的脚本和程序。

4、requests模块

Python 的 requests 模块发送 HTTP 请求并与 Web 服务交互,我们以访问 https://www.baidu.com 为例进行说明。

(1)发送 GET 请求获取百度首页内容

import requests

# 发送 GET 请求
response = requests.get('https://www.baidu.com')

# 检查请求是否成功
if response.status_code == 200:
    # 输出响应内容
    print(response.text)
else:
    print('请求失败:', response.status_code)

运行这段代码,将会发送一个 GET 请求到 https://www.baidu.com,并获取百度首页的 HTML 内容。如果请求成功(状态码为 200),则输出响应的内容;否则,输出请求失败的状态码。

(2)发送 GET 请求带查询参数进行搜索

import requests

# 设置查询参数
params = {'wd': 'Python'}

# 发送 GET 请求带查询参数
response = requests.get('https://www.baidu.com/s', params=params)

# 输出请求的 URL
print(response.url)

# 输出响应内容
print(response.text)

运行这段代码,将会发送一个 GET 请求到 https://www.baidu.com/s,并带上查询参数 wd=Python。这将模拟在百度搜索框中输入 "Python" 进行搜索。输出请求的 URL 将显示带有查询参数的完整 URL。同时,输出响应的内容,即搜索结果页面的 HTML。

(3)处理请求异常

import requests

try:
    # 发送 GET 请求
    response = requests.get('https://www.baidu.com/not_found')
    
    # 如果请求失败,抛出异常
    response.raise_for_status()
    
    # 输出响应内容
    print(response.text)
except requests.exceptions.RequestException as e:
    # 输出请求异常信息
    print('请求异常:', e)

运行这段代码,将会发送一个 GET 请求到 https://www.baidu.com/not_found,这是一个不存在的页面。通过调用 response.raise_for_status(),如果请求失败(状态码不在 200-299 范围内),会抛出一个异常。我们使用 try-except 块来捕获请求异常,并输出异常信息。

这些例子展示了如何使用 requests 模块与 https://www.baidu.com 进行交互。我们可以发送 GET 请求获取页面内容,带查询参数进行搜索,并处理可能出现的请求异常。

通过 requests 模块,我们可以方便地与各种 Web 服务进行交互,获取数据、提交数据、处理响应等。它提供了简洁而强大的 API,使得发送 HTTP 请求变得非常简单。

5、re模块

Python 的 re 模块提供了正则表达式的功能,用于文本匹配和替换。

(1)匹配文本中的电子邮件地址

import re

text = "请联系我:gzmusem@outlook.com,或者发邮件到 gzmusem@163.com。"

# 使用正则表达式匹配电子邮件地址
pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
matches = re.findall(pattern, text)

# 输出匹配到的电子邮件地址
for match in matches:
    print(match)

运行这段代码,将会在给定的文本中查找所有的电子邮件地址,并输出匹配到的结果:

gzmusem@outlook.com
gzmusem@163.com

(2)替换文本中的特定模式

import re

text = "Hello, World! Hello, Python!"

# 使用正则表达式替换文本
new_text = re.sub(r'Hello', 'Hi', text)

# 输出替换后的文本
print(new_text)

运行这段代码,将会使用正则表达式将文本中的 "Hello" 替换为 "Hi",并输出替换后的文本:

Hi, World! Hi, Python!

(3)提取文本中的数字

import re

text = "我有 5 个苹果和 3 个橙子。"

# 使用正则表达式提取数字
numbers = re.findall(r'\d+', text)

# 输出提取到的数字
print(numbers)

运行这段代码,将会使用正则表达式从文本中提取所有的数字,并输出提取到的结果:

['5', '3']

(4)拆分文本

import re

text = "apple,banana,orange;grape"

# 使用正则表达式拆分文本
fruits = re.split(r'[,;]', text)

# 输出拆分后的结果
print(fruits)

运行这段代码,将会使用正则表达式根据逗号和分号对文本进行拆分,并输出拆分后的结果:

['apple', 'banana', 'orange', 'grape']

这些例子展示了 re 模块的一些常见用法。re 模块提供了强大的正则表达式功能,可以用于文本匹配、替换、提取和拆分等操作。

正则表达式是一种用于描述文本模式的语法。通过定义正则表达式模式,我们可以在文本中查找匹配的子串、替换特定模式、提取感兴趣的部分等。re 模块使得在 Python 中使用正则表达式变得非常方便和高效。

6、json模块

Python 的 json 模块提供了处理 JSON 数据的功能

(1)将 Python 对象转换为 JSON 字符串

import json

# 创建一个 Python 字典
data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

# 将 Python 字典转换为 JSON 字符串
json_string = json.dumps(data)

# 输出 JSON 字符串
print(json_string)

运行这段代码,将会将 Python 字典 data 转换为 JSON 字符串,并输出结果:

{"name": "John", "age": 30, "city": "New York"}

(2)将 JSON 字符串解析为 Python 对象

import json

# JSON 字符串
json_string = '{"name": "John", "age": 30, "city": "New York"}'

# 将 JSON 字符串解析为 Python 字典
data = json.loads(json_string)

# 访问 Python 字典中的数据
print(data["name"])
print(data["age"])
print(data["city"])

运行这段代码,将会将 JSON 字符串解析为 Python 字典 data,并访问字典中的数据:

John
30
New York

(3)将 Python 对象写入 JSON 文件

import json

# 创建一个 Python 字典
data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

# 将 Python 字典写入 JSON 文件
with open("data.json", "w") as file:
    json.dump(data, file)

运行这段代码,将会将 Python 字典 data 写入名为 "data.json" 的文件中。文件内容将是 JSON 格式的数据。

(4)从 JSON 文件读取数据

import json

# 从 JSON 文件读取数据
with open("data.json", "r") as file:
    data = json.load(file)

# 访问读取的数据
print(data["name"])
print(data["age"])
print(data["city"])

运行这段代码,将会从名为 "data.json" 的文件中读取 JSON 数据,并将其解析为 Python 字典 data。然后,我们可以访问字典中的数据。

这些例子展示了 json 模块的基本用法。json 模块提供了将 Python 对象与 JSON 数据进行相互转换的功能。我们可以使用 json.dumps() 将 Python 对象转换为 JSON 字符串,使用 json.loads() 将 JSON 字符串解析为 Python 对象。

此外,json 模块还支持将 Python 对象写入 JSON 文件和从 JSON 文件读取数据。这在处理配置文件、数据持久化等场景中非常有用。

JSON 是一种轻量级的数据交换格式,在 Web 开发、数据传输和配置文件等领域广泛使用。Python 的 json 模块使得处理 JSON 数据变得非常简单和方便。

代码示例地址:https://github.com/gzmusem/QuantExamples/tree/main/Examples05

本站下载源码资源:https://download.csdn.net/download/benshu_001/89004242

  • 27
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder加油!

感谢您的认可和支持!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值