8280 字
41 分钟

针对 Python 的零基础编程入门指南

2026-01-11
浏览量 加载中...

针对 Python 的零基础编程入门指南#

本指南将帮助您从零开始,逐步掌握 Python 编程基础知识。

目录#


第一步:了解什么是编程语言#

编程语言就是用来和计算机”对话”的语言,就像我们用中文或英文与人交流一样。

常见的编程语言#

  • Python:简单易学,语法接近英语,适合初学者
  • JavaScript:用于网页开发,可以在浏览器中运行
  • Java:企业级应用开发,功能强大
  • C++:高性能计算,适合游戏和系统开发

本教程推荐:Python#

为什么选择 Python?

  • ✅ 语法简单,代码读起来像英语
  • ✅ 有丰富的库和工具
  • ✅ 应用广泛(AI、数据分析、网页开发等)
  • ✅ 社区活跃,资料丰富

第二步:安装 Python#

Windows 系统#

TIP

推荐下载 Python 3.12 或更高版本,这是最新的稳定版本。安装时务必勾选”Add Python to PATH”选项,否则需要在每次使用 Python 时指定完整路径。

  1. 下载 Python

    • 访问 Python 官网
    • 点击”Download Python”按钮下载最新版本(推荐 3.12 或更高)
  2. 安装 Python

    • 双击下载的安装包
    • ⚠️ 重要:勾选”Add Python to PATH”选项
    • 点击”Install Now”
  3. 验证安装

    • 打开”命令提示符”(按 Win+R,输入cmd,回车)
    • 输入:python --version
    • 如果显示版本号(如Python 3.10.0),说明安装成功

macOS 系统#

  1. 检查是否已安装

    • 打开”终端”(在”应用程序” > “实用工具”中)
    • 输入:python3 --version
    • 如果显示版本号,说明已安装,可以跳过安装步骤
  2. 安装 Python(如果未安装)

    • 访问 Python 官网
    • 下载 macOS 版本的安装包
    • 双击安装包,按照提示完成安装
  3. 验证安装

    • 打开”终端”
    • 输入:python3 --version
    • 如果显示版本号,说明安装成功

Linux 系统#

大多数 Linux 系统已经预装了 Python。

  1. 检查是否已安装

    • 打开终端
    • 输入:python3 --version
  2. 安装 Python(如果未安装)

    Terminal window
    # Ubuntu/Debian
    sudo apt update
    sudo apt install python3
    # CentOS/RHEL
    sudo yum install python3

第三步:安装代码编辑器#

代码编辑器就像写文章的 Word 文档,但专门用来写代码。

推荐使用 VS Code(Visual Studio Code):

  1. 下载 VS Code

  2. 安装 VS Code

    • 双击下载的安装包
    • 按照提示完成安装
  3. 安装 Python 扩展

    • 打开 VS Code
    • 点击左侧的”扩展”图标(四个方块)
    • 搜索”Python”
    • 点击”安装”Microsoft 发布的 Python 扩展

第四步:学习 Python 基础语法#

🗺️ 语法学习路线图#

graph TD A[1️⃣ 变量<br/>存储数据] --> B[2️⃣ 数据类型<br/>数据的种类] B --> C[3️⃣ 函数<br/>封装功能] C --> D[4️⃣ 条件判断<br/>做决定] D --> E[5️⃣ 循环<br/>重复执行] style A fill:#e1f5ff style B fill:#fff4e1 style C fill:#e8f5e9 style D fill:#fce4ec style E fill:#f3e5f5

您只需要掌握以下基础知识就能开始编写实用的程序:

4.1 变量#

TIP

Python 的变量命名规则:只能包含字母、数字和下划线,不能以数字开头,不能使用 Python 的关键字(如 if、else、for 等)。变量名应该有意义,避免使用单个字母(如 a、b、c)。

变量就像一个”盒子”,用来存储数据。

# 创建一个变量,存储名字
name = "张三"
# 创建一个变量,存储年龄
age = 25
# 打印变量的值
print(name) # 输出:张三
print(age) # 输出:25

4.2 数据类型#

常见的数据类型:

# 字符串(文本)
text = "Hello, World!"
# 整数(整数)
number = 42
# 浮点数(小数)
price = 19.99
# 布尔值(真或假)
is_valid = True
is_valid = False
# 列表(多个数据)
fruits = ["苹果", "香蕉", "橙子"]
# 字典(键值对)
person = {
"name": "张三",
"age": 25,
"city": "北京"
}

4.3 函数#

函数就像一个”工具”,可以重复使用。

# 定义一个函数
def say_hello(name):
print(f"你好,{name}!")
# 调用函数
say_hello("张三") # 输出:你好,张三!
say_hello("李四") # 输出:你好,李四!

4.4 条件判断#

age = 18
if age >= 18:
print("成年人")
else:
print("未成年人")

4.5 循环#

# for 循环
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(fruit)
# 输出:
# 苹果
# 香蕉
# 橙子

第五步:安装 Python 库#

Python 库就是别人写好的代码,我们可以直接使用。

安装 requests 库(用于发送 HTTP 请求)#

Terminal window
# 在命令行中输入
pip install requests

安装 openai 库(用于调用 OpenAI 兼容的 API)#

Terminal window
# 在命令行中输入
pip install openai

验证安装#

Terminal window
# 检查是否安装成功
pip list | findstr requests # Windows
pip list | grep requests # macOS/Linux

第六步:编写第一个 Python 程序#

  1. 创建一个新的 Python 文件

    • 打开 VS Code
    • 点击”文件” > “新建文件”
    • 保存为hello.py
  2. 编写代码

# 我的第一个 Python 程序
print("Hello, World!")
print("你好,世界!")
# 定义变量
name = "张三"
age = 25
# 打印变量
print(f"姓名:{name}")
print(f"年龄:{age}")
  1. 运行程序
    • 打开命令行(终端)
    • 进入文件所在目录
    • 输入:python hello.py(Windows)或python3 hello.py(macOS/Linux)

第七步:理解 HTTP 请求#

HTTP 请求就是您的程序向服务器发送”请求”,告诉服务器您需要什么服务。

HTTP 请求的组成#

POST /api/chat HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Bearer sk-xxxxx
{
"message": "你好"
}

解释:

  • POST:请求方法(GET、POST、PUT、DELETE 等)
  • /api/chat:请求的路径
  • Host:服务器地址
  • Content-Type:内容类型(表示发送的是 JSON 数据)
  • Authorization:认证信息(API Key)
  • {...}:请求体(实际发送的数据)

使用 Python 发送 HTTP 请求#

import requests
# API 地址
url = "https://api.example.com/api/chat"
# 请求头
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer sk-xxxxx"
}
# 请求体
data = {
"message": "你好"
}
# 发送 POST 请求
response = requests.post(url, headers=headers, json=data)
# 打印响应
print(response.json())

第八步:理解 JSON 格式#

JSON(JavaScript Object Notation)是一种数据格式,就像一个”表格”或”清单”,用来组织信息。

JSON 示例#

{
"name": "张三",
"age": 25,
"city": "北京",
"hobbies": ["读书", "游泳", "编程"],
"address": {
"street": "长安街",
"number": 1
}
}

在 Python 中使用 JSON#

import json
# 将 Python 对象转换为 JSON 字符串
data = {
"name": "张三",
"age": 25
}
json_string = json.dumps(data)
print(json_string)
# 输出:{"name": "张三", "age": 25}
# 将 JSON 字符串转换为 Python 对象
json_string = '{"name": "张三", "age": 25}'
data = json.loads(json_string)
print(data["name"]) # 输出:张三

第九步:异常处理基础#

WARNING

异常处理是编写健壮程序的关键。特别是处理文件操作、网络请求、用户输入等可能失败的操作时,必须添加异常处理。不要忽略异常,至少要记录错误信息。

在编程过程中,程序可能会遇到各种错误。异常处理就是用来处理这些错误的机制,让程序不会因为错误而崩溃。

🎯 异常处理流程#

graph TD A[尝试执行代码] --> B{是否出错?} B -->|否| C[正常执行] B -->|是| D[捕获异常] D --> E{异常类型匹配?} E -->|是| F[执行对应的 except 块] E -->|否| G[执行通用 except 块] F --> H[执行 finally 块] G --> H C --> H H --> I[继续执行后续代码] style A fill:#e1f5ff style B fill:#fff4e1 style C fill:#e8f5e9 style D fill:#fff4e1 style E fill:#fff4e1 style F fill:#fce4ec style G fill:#fce4ec style H fill:#f3e5f5 style I fill:#c8e6c9

9.1 什么是异常?#

异常就是程序运行时发生的错误。例如:

  • 除以零
  • 访问不存在的列表索引
  • 打开不存在的文件

9.2 基本的异常处理#

使用 try-except 语句来捕获和处理异常:

# 示例 1:处理除以零的错误
try:
result = 10 / 0
print(result)
except ZeroDivisionError:
print("错误:不能除以零!")
# 示例 2:处理列表索引越界
fruits = ["苹果", "香蕉", "橙子"]
try:
print(fruits[10]) # 不存在的索引
except IndexError:
print("错误:索引超出范围!")

9.3 捕获所有异常#

使用 Exception 可以捕获所有类型的异常:

try:
# 可能会出错的代码
result = int("abc")
except Exception as e:
print(f"发生错误:{e}")

9.4 实际应用:处理 API 请求错误#

import requests
try:
response = requests.get("https://api.example.com/data")
response.raise_for_status() # 如果状态码不是 200,抛出异常
data = response.json()
print(data)
except requests.exceptions.RequestException as e:
print(f"请求失败:{e}")
except json.JSONDecodeError:
print("响应不是有效的 JSON 格式")

9.5 小贴士#

  • 不要忽略异常:至少要打印错误信息
  • 具体化异常类型:尽量捕获具体的异常,而不是所有异常
  • 使用 finally:无论是否发生异常,都会执行的代码
try:
file = open("data.txt", "r")
content = file.read()
except FileNotFoundError:
print("文件不存在")
finally:
file.close() # 确保文件被关闭

第十步:调试技巧#

调试是找出和修复代码错误的过程。掌握调试技巧可以让你事半功倍。

10.1 使用 print 语句#

最简单的调试方法:

def calculate(a, b):
print(f"输入:a={a}, b={b}") # 调试输出
result = a + b
print(f"结果:{result}") # 调试输出
return result
calculate(10, 20)

10.2 常见错误类型#

错误类型说明示例
SyntaxError语法错误print("Hello" 缺少右括号
NameError变量未定义print(x) 但 x 未定义
TypeError类型错误"2" + 2 字符串和数字相加
ValueError值错误int("abc") 无法转换为整数
IndexError索引越界list[10] 列表长度不够

10.3 VS Code 调试功能#

VS Code 提供了强大的调试功能:

  1. 设置断点:在代码行号左侧点击,出现红点
  2. 启动调试:按 F5 或点击调试按钮
  3. 单步执行:使用 F10(单步跳过)或 F11(单步进入)
  4. 查看变量:在调试面板中查看变量的值

10.4 阅读错误信息#

错误信息通常包含三部分:

Traceback (most recent call last):
File "example.py", line 5, in <module>
result = 10 / 0
ZeroDivisionError: division by zero
  • 第 1 行:错误追踪(Traceback)
  • 第 2 行:出错的位置(文件名、行号)
  • 第 3 行:出错的代码
  • 第 4 行:错误类型和描述

10.5 调试技巧#

  1. 缩小范围:注释掉部分代码,确定错误位置
  2. 打印中间结果:在关键位置打印变量值
  3. 检查拼写:Python 对大小写敏感
  4. 检查缩进:Python 使用缩进来区分代码块

第十一步:代码规范#

TIP

良好的代码规范可以让代码更易读、易维护,也能减少错误。Python 有 PEP 8 官方代码风格指南,建议遵循。可以使用工具如 blackflake8 自动格式化和检查代码。

良好的代码规范可以让代码更易读、易维护。

11.1 命名规范#

类型规范示例
变量小写字母和下划线user_name, total_price
函数小写字母和下划线get_user(), calculate_total()
常量大写字母和下划线MAX_SIZE, API_KEY
类名大驼峰(首字母大写)User, ProductManager

11.2 注释规范#

# 单行注释:解释这行代码的作用
name = "张三"
"""
多行注释:
用于解释复杂的功能或逻辑
"""
def calculate_discount(price, discount_rate):
"""
计算折扣后的价格
Args:
price: 原价
discount_rate: 折扣率(0-1)
Returns:
折扣后的价格
"""
return price * (1 - discount_rate)

11.3 缩进规范#

Python 使用 4 个空格作为缩进:

# ✅ 正确
if age >= 18:
print("成年人")
if has_id:
print("可以进入")
# ❌ 错误(使用 Tab)
if age >= 18:
print("成年人")

11.4 代码格式化工具#

推荐使用 Black 自动格式化代码:

Terminal window
# 安装 Black
pip install black
# 格式化文件
black your_file.py
# 格式化整个项目
black .

第十二步:虚拟环境入门#

WARNING

虚拟环境是 Python 开发的最佳实践,强烈建议为每个项目创建独立的虚拟环境。这样可以避免不同项目之间的依赖冲突,确保项目的可重现性。不要跳过这一步!

虚拟环境可以为每个项目创建独立的 Python 环境,避免不同项目之间的依赖冲突。

🎯 虚拟环境结构#

graph LR A[系统 Python] --> B[项目A虚拟环境<br/>myenv_A] A --> C[项目B虚拟环境<br/>myenv_B] B --> B1[requests 2.25.0] B --> B2[其他依赖...] C --> C1[requests 2.30.0] C --> C2[其他依赖...] style A fill:#e1f5ff style B fill:#e8f5e9 style C fill:#fff4e1 style B1 fill:#c8e6c9 style B2 fill:#c8e6c9 style C1 fill:#fff9c4 style C2 fill:#fff9c4

12.1 为什么需要虚拟环境?#

假设你有两个项目:

  • 项目 A 需要 requests==2.25.0
  • 项目 B 需要 requests==2.30.0

如果不使用虚拟环境,这两个版本会冲突。

12.2 创建虚拟环境#

Terminal window
# 创建虚拟环境
python -m venv myenv
# 激活虚拟环境
# Windows:
myenv\Scripts\activate
# macOS/Linux:
source myenv/bin/activate

激活后,命令行前面会显示 (myenv)

12.3 在虚拟环境中安装库#

Terminal window
# 安装库
pip install requests
# 查看已安装的库
pip list
# 导出依赖列表
pip freeze > requirements.txt
# 根据依赖列表安装
pip install -r requirements.txt

12.4 退出虚拟环境#

Terminal window
deactivate

12.5 小贴士#

  • ✅ 每个项目都使用独立的虚拟环境
  • ✅ 将虚拟环境文件夹添加到 .gitignore(不要提交到代码仓库)
  • ✅ 提交 requirements.txt 文件,方便其他人安装依赖

第十三步:实战练习#

通过实际练习来巩固所学知识。

练习 1:计算器#

编写一个简单的计算器,支持加减乘除:

def calculator(a, b, operator):
"""
简单计算器
Args:
a: 第一个数字
b: 第二个数字
operator: 运算符(+、-、*、/)
Returns:
计算结果
"""
try:
if operator == '+':
return a + b
elif operator == '-':
return a - b
elif operator == '*':
return a * b
elif operator == '/':
if b == 0:
return "错误:不能除以零"
return a / b
else:
return "错误:不支持的运算符"
except Exception as e:
return f"错误:{e}"
# 测试
print(calculator(10, 5, '+')) # 输出:15
print(calculator(10, 5, '/')) # 输出:2.0
print(calculator(10, 0, '/')) # 输出:错误:不能除以零

练习 2:学生成绩管理#

创建一个学生成绩管理系统:

# 学生成绩字典
students = {
"张三": {"语文": 85, "数学": 90, "英语": 88},
"李四": {"语文": 78, "数学": 95, "英语": 82},
"王五": {"语文": 92, "数学": 88, "英语": 90}
}
def calculate_average(scores):
"""计算平均分"""
return sum(scores.values()) / len(scores)
def get_student_info(name):
"""获取学生信息"""
if name in students:
scores = students[name]
average = calculate_average(scores)
return f"{name} 的成绩:{scores},平均分:{average:.2f}"
else:
return f"错误:找不到学生 {name}"
# 测试
print(get_student_info("张三"))
print(get_student_info("赵六"))

练习 3:简单的 API 调用#

调用公开的 API 获取数据:

import requests
def get_weather(city):
"""获取天气信息(示例)"""
try:
# 使用免费的天气 API
url = f"https://api.openweathermap.org/data/2.5/weather"
params = {
"q": city,
"appid": "your-api-key", # 需要替换为实际的 API Key
"units": "metric",
"lang": "zh_cn"
}
response = requests.get(url, params=params)
response.raise_for_status()
data = response.json()
weather = data["weather"][0]["description"]
temp = data["main"]["temp"]
return f"{city} 的天气:{weather},温度:{temp}°C"
except requests.exceptions.RequestException as e:
return f"获取天气失败:{e}"
except KeyError:
return "解析天气数据失败"
# 测试(需要有效的 API Key)
# print(get_weather("北京"))

练习 4:JSON 数据处理#

处理 JSON 格式的数据:

import json
# 模拟 API 返回的数据
api_response = '''{
"status": "success",
"data": {
"users": [
{"id": 1, "name": "张三", "email": "zhangsan@example.com"},
{"id": 2, "name": "李四", "email": "lisi@example.com"},
{"id": 3, "name": "王五", "email": "wangwu@example.com"}
],
"total": 3
}
}'''
def parse_user_data(json_string):
"""解析用户数据"""
try:
data = json.loads(json_string)
if data["status"] == "success":
users = data["data"]["users"]
print(f"共有 {data['data']['total']} 个用户:")
for user in users:
print(f" - ID: {user['id']}, 姓名: {user['name']}, 邮箱: {user['email']}")
else:
print("API 返回失败")
except json.JSONDecodeError:
print("JSON 格式错误")
except KeyError as e:
print(f"数据格式错误:缺少字段 {e}")
# 测试
parse_user_data(api_response)

第十四步:文件操作基础#

WARNING

文件操作是编程中非常常用的功能,但也容易出错。务必使用 with 语句来打开文件,这样可以确保文件会被正确关闭。在读取或写入文件时,务必添加异常处理,防止程序因文件不存在或权限问题而崩溃。

文件操作是编程中非常常用的功能,比如读取配置文件、保存数据等。

14.1 读取文件#

# 方法 1:使用 open() 和 read()
file = open("data.txt", "r", encoding="utf-8")
content = file.read()
print(content)
file.close()
# 方法 2:使用 with 语句(推荐)
# with 语句会自动关闭文件,即使发生异常
with open("data.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)
# 方法 3:逐行读取
with open("data.txt", "r", encoding="utf-8") as file:
for line in file:
print(line.strip()) # strip() 去除行尾的换行符

14.2 写入文件#

# 写入文本(覆盖模式)
with open("output.txt", "w", encoding="utf-8") as file:
file.write("Hello, World!\n")
file.write("你好,世界!")
# 追加内容
with open("output.txt", "a", encoding="utf-8") as file:
file.write("\n这是追加的内容")
# 写入多行
lines = ["第一行", "第二行", "第三行"]
with open("output.txt", "w", encoding="utf-8") as file:
file.writelines(line + "\n" for line in lines)

14.3 JSON 文件操作#

import json
# 写入 JSON 文件
data = {
"name": "张三",
"age": 25,
"hobbies": ["读书", "游泳"]
}
with open("data.json", "w", encoding="utf-8") as file:
json.dump(data, file, ensure_ascii=False, indent=2)
# 读取 JSON 文件
with open("data.json", "r", encoding="utf-8") as file:
data = json.load(file)
print(data)

14.4 实战:保存 API 响应#

import requests
import json
def fetch_and_save_data(url, filename):
"""获取数据并保存到文件"""
try:
# 发送请求
response = requests.get(url)
response.raise_for_status()
# 保存到文件
with open(filename, "w", encoding="utf-8") as file:
json.dump(response.json(), file, ensure_ascii=False, indent=2)
print(f"数据已保存到 {filename}")
except requests.exceptions.RequestException as e:
print(f"请求失败:{e}")
except IOError as e:
print(f"文件操作失败:{e}")
# 使用示例
# fetch_and_save_data("https://api.example.com/data", "response.json")

14.5 文件操作最佳实践#

  • 使用 with 语句:自动处理文件关闭
  • 指定编码:使用 encoding="utf-8" 避免中文乱码
  • 检查文件是否存在
import os
if os.path.exists("data.txt"):
with open("data.txt", "r") as file:
content = file.read()
else:
print("文件不存在")

第十五步:列表推导式#

列表推导式是 Python 的特色功能,可以用简洁的方式创建列表。

15.1 基础语法#

# 传统方式
numbers = []
for i in range(10):
numbers.append(i * 2)
print(numbers) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
# 使用列表推导式
numbers = [i * 2 for i in range(10)]
print(numbers) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

15.2 带条件的列表推导式#

# 只保留偶数
numbers = [i for i in range(20) if i % 2 == 0]
print(numbers) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
# 过滤列表中的字符串
items = ["apple", "banana", "cherry", "date", "elderberry"]
short_items = [item for item in items if len(item) < 6]
print(short_items) # ['apple', 'date']

15.3 字典推导式#

# 创建字典
numbers = [1, 2, 3, 4, 5]
squares = {num: num ** 2 for num in numbers}
print(squares) # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# 转换字典大小写
original = {"name": "Alice", "age": 25, "city": "Beijing"}
upper_keys = {k.upper(): v for k, v in original.items()}
print(upper_keys) # {'NAME': 'Alice', 'AGE': 25, 'CITY': 'Beijing'}

15.4 实际应用#

# 示例 1:处理 API 返回的数据
users = [
{"name": "张三", "age": 25, "active": True},
{"name": "李四", "age": 30, "active": False},
{"name": "王五", "age": 28, "active": True},
{"name": "赵六", "age": 22, "active": True}
]
# 获取所有活跃用户的名字
active_users = [user["name"] for user in users if user["active"]]
print(active_users) # ['张三', '王五', '赵六']
# 获取所有用户的年龄
ages = [user["age"] for user in users]
print(ages) # [25, 30, 28, 22]
# 计算平均年龄
average_age = sum(ages) / len(ages)
print(f"平均年龄:{average_age:.1f}") # 平均年龄:26.2

15.5 小贴士#

  • ✅ 列表推导式简洁易读,但不要过度使用
  • ✅ 如果逻辑太复杂,还是用传统 for 循环
  • ❌ 避免在列表推导式中使用复杂的嵌套
# ❌ 不推荐:太复杂
result = [x * y for x in range(10) for y in range(10) if x * y > 50]
# ✅ 推荐:使用嵌套循环
result = []
for x in range(10):
for y in range(10):
if x * y > 50:
result.append(x * y)

第十六步:Python 特性与技巧#

Python 有很多独特的特性和技巧,可以让代码更简洁高效。

16.1 字符串格式化#

name = "张三"
age = 25
# 方法 1:使用 %(旧方法,不推荐)
message = "姓名:%s,年龄:%d" % (name, age)
# 方法 2:使用 format()
message = "姓名:{},年龄:{}".format(name, age)
# 方法 3:使用 f-string(推荐,Python 3.6+)
message = f"姓名:{name},年龄:{age}"
# f-string 支持表达式
message = f"明年年龄:{age + 1}"
# f-string 格式化数字
pi = 3.1415926
print(f"π ≈ {pi:.2f}") # π ≈ 3.14
print(f"π ≈ {pi:.4f}") # π ≈ 3.1416

16.2 解包赋值#

# 交换两个变量的值
a, b = 10, 20
a, b = b, a # 交换
print(a, b) # 20 10
# 解包列表
numbers = [1, 2, 3]
x, y, z = numbers
print(x, y, z) # 1 2 3
# 使用 * 解包剩余元素
numbers = [1, 2, 3, 4, 5]
first, *rest = numbers
print(first) # 1
print(rest) # [2, 3, 4, 5]
# 解包字典
user = {"name": "张三", "age": 25, "city": "北京"}
for key, value in user.items():
print(f"{key}: {value}")

16.3 装饰器基础#

装饰器可以在不修改原函数的情况下,为函数添加额外功能。

# 简单的计时装饰器
import time
def timer(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"{func.__name__} 执行时间:{end - start:.4f} 秒")
return result
return wrapper
# 使用装饰器
@timer
def slow_function():
time.sleep(1)
return "完成"
slow_function() # 输出:slow_function 执行时间:1.000X 秒

16.4 生成器#

生成器可以节省内存,特别适合处理大量数据。

# 传统方式:创建完整列表
def get_numbers传统(n):
result = []
for i in range(n):
result.append(i ** 2)
return result
# 使用生成器:按需生成
def get_numbers(n):
for i in range(n):
yield i ** 2
# 使用生成器
for num in get_numbers(10):
print(num)
# 生成器表达式
squares = (i ** 2 for i in range(10))
print(list(squares)) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

16.5 Lambda 函数#

Lambda 函数是匿名函数,适合简单的操作。

# 普通函数
def add(x, y):
return x + y
# Lambda 函数
add = lambda x, y: x + y
print(add(3, 5)) # 8
# 与 sorted() 结合使用
students = [
{"name": "张三", "score": 85},
{"name": "李四", "score": 92},
{"name": "王五", "score": 78}
]
# 按分数排序
sorted_students = sorted(students, key=lambda x: x["score"], reverse=True)
print(sorted_students)

16.6 多行字符串#

# 使用三引号
message = """
这是一个
多行字符串
示例
"""
# 使用括号
message = (
"这是第一行\n"
"这是第二行\n"
"这是第三行"
)

16.7 枚举(enumerate)#

fruits = ["苹果", "香蕉", "橙子"]
# 传统方式
for i in range(len(fruits)):
print(f"{i}: {fruits[i]}")
# 使用 enumerate
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
# 指定起始索引
for index, fruit in enumerate(fruits, start=1):
print(f"{index}. {fruit}")

16.8 合并字典#

# Python 3.5+
dict1 = {"a": 1, "b": 2}
dict2 = {"c": 3, "d": 4}
# 方法 1:使用 update()
dict1.update(dict2)
print(dict1)
# 方法 2:使用 ** 解包
dict1 = {"a": 1, "b": 2}
dict2 = {"c": 3, "d": 4}
merged = {**dict1, **dict2}
print(merged)
# Python 3.9+
merged = dict1 | dict2
print(merged)

第十七步:模块和包#

理解模块和包可以帮助你更好地组织代码。

17.1 什么是模块?#

模块就是一个包含 Python 代码的文件(.py 文件)。

17.2 导入模块#

# 导入整个模块
import math
print(math.pi) # 3.141592653589793
print(math.sqrt(16)) # 4.0
# 导入模块中的特定函数
from math import pi, sqrt
print(pi)
print(sqrt(16))
# 给模块起别名
import math as m
print(m.pi)
# 导入所有内容(不推荐)
from math import *

17.3 创建自己的模块#

创建一个文件 my_module.py

my_module.py
def greet(name):
return f"你好,{name}!"
def calculate_circle_area(radius):
return 3.14159 * radius ** 2
PI = 3.14159

在另一个文件中使用:

main.py
import my_module
print(my_module.greet("张三"))
print(my_module.calculate_circle_area(5))
print(my_module.PI)

17.4 什么是包?#

包是一个包含多个模块的目录,目录中必须有一个 __init__.py 文件。

my_package/
__init__.py
module1.py
module2.py

17.5 常用内置模块#

# datetime:日期时间处理
from datetime import datetime, timedelta
now = datetime.now()
print(now) # 2024-01-11 10:30:00
print(now.strftime("%Y-%m-%d")) # 2024-01-11
# random:随机数
import random
print(random.randint(1, 100)) # 1-100 之间的随机整数
print(random.choice(["苹果", "香蕉", "橙子"])) # 随机选择
# os:操作系统相关
import os
print(os.getcwd()) # 获取当前工作目录
print(os.listdir()) # 列出当前目录的文件
# pathlib:路径操作(推荐)
from pathlib import Path
path = Path("data.txt")
print(path.exists()) # 检查文件是否存在
print(path.name) # 获取文件名

17.6 第三方库管理#

Terminal window
# 安装库
pip install requests
# 查看已安装的库
pip list
# 查看库的详细信息
pip show requests
# 卸载库
pip uninstall requests
# 升级库
pip install --upgrade requests
# 导出依赖
pip freeze > requirements.txt
# 从 requirements.txt 安装
pip install -r requirements.txt

第十八步:学习路径建议#

TIP

学习编程是一个循序渐进的过程,不要急于求成。建议按照本指南的顺序学习,每学完一个章节都要动手练习,巩固所学知识。遇到问题不要怕,多查阅文档和搜索解决方案。

🗺️ Python 学习路线图#

graph TD A[Python 学习路线] --> B[第一阶段<br/>基础入门<br/>1-2 周] A --> C[第二阶段<br/>核心概念<br/>2-3 周] A --> D[第三阶段<br/>进阶实践<br/>3-4 周] A --> E[第四阶段<br/>深入学习<br/>持续] B --> B1[环境搭建] B --> B2[Python 基础<br/>变量, 数据类型, 函数] B --> B3[控制流<br/>条件判断, 循环] B --> B4[字符串格式化] C --> C1[HTTP 请求<br/>requests 库] C --> C2[JSON 处理] C --> C3[异常处理] C --> C4[文件操作] D --> D1[虚拟环境] D --> D2[模块和包] D --> D3[列表推导式] D --> D4[实战项目] E --> E1[Web 框架<br/>Django, Flask] E --> E2[数据分析<br/>Pandas, NumPy] E --> E3[人工智能<br/>TensorFlow, PyTorch] E --> E4[项目实战] style A fill:#e1f5ff style B fill:#c8e6c9 style C fill:#fff9c4 style D fill:#ffccbc style E fill:#f8bbd0 style B1 fill:#e8f5e9 style B2 fill:#e8f5e9 style B3 fill:#e8f5e9 style B4 fill:#e8f5e9 style C1 fill:#fffde7 style C2 fill:#fffde7 style C3 fill:#fffde7 style C4 fill:#fffde7 style D1 fill:#fbe9e7 style D2 fill:#fbe9e7 style D3 fill:#fbe9e7 style D4 fill:#fbe9e7 style E1 fill:#fce4ec style E2 fill:#fce4ec style E3 fill:#fce4ec style E4 fill:#fce4ec

如果您是零基础,建议按照以下顺序学习:

第一周:环境搭建和基础语法#

  • 安装 Python
  • 安装 VS Code
  • 学习变量和数据类型
  • 学习函数
  • 学习条件判断和循环

第二周:HTTP 请求和数据处理#

  • 理解 HTTP 请求
  • 学习使用 requests 库
  • 理解 JSON 格式
  • 学习异常处理

第三周:实践练习#

  • 编写第一个 Python 程序
  • 练习发送 HTTP 请求
  • 练习处理 JSON 数据
  • 完成实战练习

第十九步:学习资源推荐#

免费学习资源#

  1. Python 官方教程

  2. 廖雪峰 Python 教程

  3. 菜鸟教程

  4. B 站视频教程

    • 搜索”Python 零基础入门”
    • 推荐 UP 主:小甲鱼、廖雪峰

练习平台#

  1. LeetCode(刷题)

  2. 牛客网

  3. Codecademy


第二十步:常见问题#

NOTE

以下是学习过程中常见的问题和解答。如果您有其他问题,可以在技术社区搜索或提问,通常都能找到答案。记住,遇到问题是学习过程中的正常现象,不要放弃!

Q1: 我完全不懂编程,能学会吗?#

A: 当然可以!Python 是最适合初学者的编程语言,语法简单易懂。只要按照本指南的步骤,每天花 1-2 小时学习,1-2 周就能掌握基础知识。

Q2: 学习编程需要多久?#

A:

  • 基础语法:1-2 周
  • 能够进行网络请求:2-3 周
  • 独立开发应用:1-3 个月

Q3: 遇到问题怎么办?#

A:

  1. 先尝试自己搜索(Google、百度)
  2. 查看官方文档
  3. 在技术社区提问(CSDN、知乎、Stack Overflow)
  4. 加入 Python 学习群

Q4: 必须学会编程才能使用 API 吗?#

A: 不一定!很多 API 都提供了 cURL 命令示例,您可以直接在命令行中使用,无需编写代码。但如果想开发实际应用,学习编程是必要的。

Q5: 我应该先学 Python 还是直接开始开发项目?#

A: 建议先花 1-2 周学习 Python 基础,然后再开始开发实际项目。这样您会更容易理解项目代码,开发效率也会更高。

Q6: Python 适合用来做什么?#

A: Python 的应用领域非常广泛:

  • Web 开发:使用 Django、Flask 等框架
  • 数据分析:使用 Pandas、NumPy 等库
  • 人工智能:使用 TensorFlow、PyTorch 等框架
  • 自动化脚本:简化日常重复性工作
  • 网络爬虫:获取和解析网页数据

第二十一步:小贴士#

TIP

编程是一个需要持续学习和实践的过程。保持耐心和毅力,每天进步一点点,长期积累会有很大收获。遇到困难时,不要放弃,多尝试不同的解决方法。

💡 学习建议#

  • 📚 多动手:编程是实践性很强的技能,多写代码才能掌握
  • 🔄 多练习:遇到问题不要怕,多尝试不同的解决方案
  • 💬 多交流:加入学习群,和其他学习者交流经验
  • 🎯 定目标:设定小目标,逐步完成,建立信心

⚠️ 注意事项#

  • 不要急于求成,循序渐进地学习
  • 遇到错误不要慌,仔细查看错误信息
  • 养成良好的代码习惯(注释、缩进、命名)
  • 使用 Black 等工具保持代码格式统一

第二十二步:下一步#

完成本指南的学习后,您可以:

  1. 🎯 完成教程中的实践练习,巩固所学知识
  2. 💻 尝试开发自己的第一个 Python 应用
  3. 📚 继续深入学习 Python 的高级特性
  4. 🌐 学习 Django、Flask 等 Web 框架
  5. 🚀 开始使用各种 API 构建实际应用

第二十三步:进阶主题学习路径#

本指南涵盖了 Python 的基础知识,但要成为一名优秀的 Python 开发者,还需要掌握以下进阶主题。这些主题将在后续的教程中详细讲解。

🎯 进阶主题清单#

序号主题状态学习资源
1面向对象编程(类和对象)📝 待编写Python 官方教程 - 类
廖雪峰 - 面向对象编程
2数据结构(集合、元组)📝 待编写Python 官方教程 - 数据结构
菜鸟教程 - 集合
3正则表达式📝 待编写Python 官方教程 - 正则表达式
菜鸟教程 - 正则表达式
4数据库操作(SQLite、MySQL)📝 待编写Python 官方文档 - sqlite3
PyMySQL 官方文档
5单元测试📝 待编写Python 官方教程 - 单元测试
pytest 官方文档
6多线程、多进程📝 待编写Python 官方教程 - 并发
廖雪峰 - 多进程

📚 主题说明#

1. 面向对象编程(类和对象)#

面向对象编程(OOP)是 Python 的核心概念之一,通过类和对象来组织代码,提高代码的可重用性和可维护性。

学习要点:

  • 类的定义和实例化
  • 属性和方法
  • 继承、封装、多态
  • 特殊方法(__init____str__ 等)

推荐资源:

2. 数据结构(集合、元组)#

Python 提供了丰富的内置数据结构,除了列表和字典,还有集合和元组等重要类型。

学习要点:

  • 集合(Set):去重、交集、并集、差集
  • 元组(Tuple):不可变序列、解包
  • 数据结构的选择和性能对比

推荐资源:

3. 正则表达式#

正则表达式是一种强大的文本匹配和处理工具,用于在字符串中查找、替换和验证模式。

学习要点:

  • 正则表达式语法
  • re 模块的使用
  • 常用模式匹配
  • 实际应用场景(数据验证、文本提取)

推荐资源:

4. 数据库操作(SQLite、MySQL)#

掌握数据库操作是开发实际应用的重要技能,能够实现数据的持久化存储和管理。

学习要点:

  • SQLite 基础操作(CREATE、INSERT、SELECT、UPDATE、DELETE)
  • 使用 sqlite3 模块
  • MySQL 连接和操作
  • ORM 框架(SQLAlchemy)

推荐资源:

5. 单元测试#

单元测试是保证代码质量的重要手段,通过编写测试用例来验证代码的正确性。

学习要点:

  • unittest 模块的使用
  • pytest 框架
  • 测试用例的编写
  • 测试覆盖率

推荐资源:

6. 多线程、多进程#

多线程和多进程是提高程序性能的重要技术,用于实现并发和并行处理。

学习要点:

  • threading 模块(多线程)
  • multiprocessing 模块(多进程)
  • 线程同步和锁
  • 进程间通信

推荐资源:

📝 学习建议#

  1. 循序渐进:按顺序学习每个主题,不要急于求成
  2. 理论结合实践:每个主题都要动手编写代码练习
  3. 阅读官方文档:官方文档是最权威的学习资源
  4. 参考优秀教程:结合廖雪峰、菜鸟教程等优质教程学习
  5. 记录学习笔记:整理关键知识点和代码示例

🎯 下一步行动#

完成本指南后,建议按照以下顺序学习进阶主题:

  1. 第一优先级:面向对象编程、数据结构
  2. 第二优先级:正则表达式、数据库操作
  3. 第三优先级:单元测试、多线程多进程

每个主题预计学习时间:1-2 周

祝您学习顺利!🎉

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

针对 Python 的零基础编程入门指南
https://blog.mizhoubaobei.top/posts/python/beginner-guide-to-python/
作者
祁筱欣
发布于
2026-01-11
许可协议
CC BY 4.0

评论区

目录