模块(Module):
一个模块就是一个 Python 文件,里面包含了 Python 代码(变量、函数、类等)。
例如:一个名为 hello.py
的文件就是一个模块。
包(Package):
包是一个文件夹,里面包含了多个模块以及一个特殊的 __init__.py
文件。
包可以用来将多个相关的模块组织在一起。
import
导入模块import math # 导入数学模块
print(math.sqrt(16)) # 计算 16 的平方根,输出:4.0
from ... import
导入指定的功能from math import sqrt # 只导入 sqrt 函数
print(sqrt(25)) # 输出:5.0
as
给模块取别名import math as m # 使用别名 "m"
print(m.pi) # 输出:3.141592653589793
Python 提供了很多内置模块,可以直接使用而不需要安装。以下是几个常用模块:
Python 的 pip 工具可以用来安装第三方包。在命令行中输入以下命令:
pip install requests
安装成功后,我们可以使用该包。例如:
import requests
response = requests.get('https://www.example.com')
print(response.status_code) # 输出:200
创建一个名为 my_module.py
的文件,并添加以下代码:
# my_module.py
def greet(name):
return f"Hello, {name}!"
在另一个 Python 文件中导入并使用它:
import my_module
print(my_module.greet("Alice")) # 输出:Hello, Alice!
my_package
。__init__.py
(可以为空)。my_package
文件夹中再创建一个模块 math_tools.py
:# my_package/math_tools.py
def add(a, b):
return a + b
在外部文件中使用该包:
from my_package.math_tools import add
print(add(3, 5)) # 输出:8
如果导入模块时出现错误 ModuleNotFoundError
,可能是以下原因:
pip install 包名
安装包,或确保你的模块文件路径正确。你可以使用以下命令查看已经安装的所有包:
pip list
有时需要将某个包更新到最新版本:
pip install --upgrade 包名
你可以查看某个包的官方文档以了解更多使用细节。
例如:在命令行中输入以下命令查看 requests
包的详细信息:
pip show requests
好的!下面是包含安装方式的完整示例,你可以直接加入博客内容中。
requests
是一个简洁易用的 HTTP 库,用于和 Web 服务器交互。
安装方式:
pip install requests
示例代码:
import requests
response = requests.get("https://api.github.com")
if response.status_code == 200:
print("请求成功!", response.json()) # 打印返回的 JSON 数据
else:
print("请求失败!状态码:", response.status_code)
用途: 用于调用 API、爬取网页等网络请求相关任务。
numpy
是用于处理多维数组和矩阵运算的基础工具。
安装方式:
pip install numpy
示例代码:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print("数组平均值:", np.mean(arr)) # 输出:3.0
print("数组平方:", np.square(arr)) # 输出:[ 1 4 9 16 25 ]
用途: 数据分析、机器学习和科学计算等领域。
pandas
是处理表格数据和数据分析的利器。
安装方式:
pip install pandas
示例代码:
import pandas as pd
data = {'Name': ['张三', '李四', '王五'], 'Age': [24, 27, 22]}
df = pd.DataFrame(data)
print(df) # 输出表格数据
# 读取 CSV 文件示例:
# df = pd.read_csv('data.csv')
用途: 数据分析和数据预处理。
matplotlib
是绘制各种图表的常用工具。
安装方式:
pip install matplotlib
示例代码:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.plot(x, y, marker='o') # 绘制折线图
plt.title("Hello")
plt.xlabel("X")
plt.ylabel("Y")
plt.show() # 显示图像
执行结果:
用途: 数据分析中的图表展示。
beautifulsoup4
常用于从网页中提取数据。
安装方式:
pip install beautifulsoup4
示例代码:
from bs4 import BeautifulSoup
import requests
url = "https://www.example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
print(soup.title.text) # 打印网页标题
用途: 爬取和解析网页数据。可与其他工具结合使用
flask
是一个简洁的微型 Web 框架,用于快速搭建 Web 应用。
安装方式:
pip install flask
示例代码:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/")
def home():
return jsonify(message="Hello, Flask!")
if __name__ == "__main__":
app.run(debug=True)
用途: 快速构建 API 或简单的 Web 服务。
每日一记、明天心情更好!
__init__.py
的作用__init__.py
是 Python 包的关键文件,用于将文件夹标记为一个 Python 包。它的主要作用有以下几点:
当一个文件夹中包含 __init__.py
文件时,Python 会将该文件夹识别为一个 包,从而可以进行模块的导入。
示例:
假设我们有如下结构:
my_package/
│
├── __init__.py
└── math_tools.py
在外部文件中,我们可以这样导入:
from my_package import math_tools
print(math_tools.add(3, 5)) # 输出:8
你可以在 __init__.py
中添加初始化代码,这些代码会在包被导入时执行。
示例:
# my_package/__init__.py
print("my_package 已被导入!")
__all__ = ["math_tools"] # 限制导入的模块
当我们导入包时:
import my_package # 会输出:my_package 已被导入!
__init__.py
中的 __all__
变量可以控制当使用 from 包名 import *
时,哪些模块会被导入。
示例:
# my_package/__init__.py
__all__ = ["math_tools"]
在外部文件中:
from my_package import *
# 只有 math_tools 模块会被导入
在多层包结构中,__init__.py
还可以用于在父包和子包之间共享代码。
示例:
my_package/
├── __init__.py
└── sub_package/
├── __init__.py
└── sub_module.py
在外部文件中,我们可以这样导入:
from my_package.sub_package import sub_module
从 Python 3.3 开始,__init__.py
已不是强制的。即使没有该文件,Python 也可以将文件夹识别为包。不过,为了清晰管理和初始化代码,推荐保留 __init__.py
文件。