Python
约 1557 字大约 5 分钟
python
2020-05-09
从版本管理到核心语法,覆盖 Python 开发的常用知识点,适合快速查阅。
背景与用途
Python 是一门简洁优雅的编程语言,广泛应用于以下场景:
- 爬虫开发:Requests、Scrapy 等库使数据采集变得简单
- 数据分析:Pandas、NumPy、Matplotlib 构成完整的数据分析栈
- Web 开发:Django、Flask 等框架支撑后端服务
- 自动化脚本:系统管理、文件处理、定时任务
- 机器学习:TensorFlow、PyTorch、scikit-learn 等主流框架
本文整理 Python 核心语法和常用工具,方便快速查阅。
Python 版本管理
推荐使用 pyenv 管理 Python 版本,避免系统版本冲突。
安装 pyenv
# macOS 安装
brew install pyenv
brew install pyenv-virtualenv
# 查看版本
pyenv --versionPython 版本操作
# 安装指定版本
pyenv install 3.12.0
# 卸载版本
pyenv uninstall 3.12.0
# 查看已安装版本
pyenv versions
# 设置全局版本
pyenv global 3.13.0
# 设置当前目录版本
pyenv local 3.12.0pip 包管理
python3 --version
pip3 --version
pip3 listPython 虚拟环境
推荐使用 uv 创建隔离的开发环境。
# 创建虚拟环境(指定 Python 版本)
uv venv --python 3.11
# 激活虚拟环境
source .venv/bin/activate
# 安装依赖
uv pip install -r requirements.txt核心语法
变量与常量
- 变量:使用数字、字母、下划线,不能以数字开头,不能使用关键字
- 常量:全大写命名,如
PI = 3.14159
name = 'hello' # 变量
PI = 3.14159 # 常量(约定俗成)基本数据类型
数字类型
| 类型 | 示例 | 说明 |
|---|---|---|
| 整数 | 100 | 可执行加减乘除 |
| 浫点数 | 3.14 | 支持科学计数法 |
| 十六进制 | 0xff00 | 0x 前缀 |
类型转换:
str(123) # 数字转字符串
int('123') # 字符串转整数字符串
# 定义字符串
s1 = 'hello'
s2 = "world"
# 转义与原始字符串
s3 = 'line1\nline2' # 转义字符
s4 = r'C:\path\to\file' # 原始字符串(不转义)
# 常用方法
s1.upper() # 大写
s1.lower() # 小写
s1.title() # 首字母大写
s1.strip() # 去除两端空白
len(s1) # 长度
s1 + ' ' + s2 # 拼接布尔值与空值
flag = True
empty = None字节
b = b'hello' # 字节字面量
'hello'.encode('utf-8') # 字符串编码为字节
b'hello'.decode('utf-8') # 字节解码为字符串集合类型
列表(List)
列表是有序可变的集合。
# 创建列表
fruits = ['apple', 'banana', 'orange']
# 访问元素
fruits[0] # 'apple'
fruits[-1] # 'orange'(最后一个)
# 新增元素
fruits.append('grape') # 末尾追加
fruits.insert(1, 'pear') # 指定位置插入
# 删除元素
fruits.pop() # 删除最后一个
fruits.pop(0) # 删除指定索引
fruits.remove('banana') # 按值删除
# 修改元素
fruits[0] = 'cherry'
# 排序
fruits.sort() # 原地排序
fruits.sort(reverse=True) # 降序
sorted(fruits) # 返回新列表
# 切片
fruits[1:3] # 索引 1 到 2
# 统计
len(fruits) # 长度
max([1, 2, 3]) # 最大值
min([1, 2, 3]) # 最小值
sum([1, 2, 3]) # 求和列表推导式:
squares = [x**2 for x in range(1, 11)]
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]元组(Tuple)
元组是有序不可变的集合。
# 创建元组
point = (1, 2)
single = (1,) # 单元素元组需加逗号
# 访问元素
point[0] # 1
# 元组不可修改,但可包含可变对象
mixed = (1, [2, 3])
mixed[1].append(4) # 列表部分可修改字典(Dict)
字典是无序可变的键值对集合。
# 创建字典
person = {'name': 'Alice', 'age': 25}
# 访问元素
person['name'] # 'Alice'
person.get('name') # 'Alice'(推荐)
person.get('job', 'None') # 不存在时返回默认值
# 新增/修改
person['city'] = 'Beijing' # 新增
person['age'] = 26 # 修改
# 删除
del person['city']
person.pop('name')
# 获取键和值
person.keys() # 所有键
person.values() # 所有值集合(Set)
集合是无序不重复的元素集合。
# 创建集合
s = {1, 2, 3}
s = set([1, 2, 2, 3]) # 去重
# 操作
s.add(4) # 添加
s.remove(1) # 删除运算符
算术运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
+ | 加法 | 1 + 2 |
- | 减法 | 3 - 1 |
* | 乘法 | 2 * 3 |
/ | 除法 | 6 / 2 |
// | 整除 | 7 // 2 → 3 |
% | 取余 | 7 % 3 → 1 |
** | 幂运算 | 2 ** 3 → 8 |
比较与逻辑运算符
# 比较运算符
a == b # 等于
a != b # 不等于
a < b # 小于
a > b # 大于
a <= b # 小于等于
a >= b # 大于等于
# 逻辑运算符
a and b # 与
a or b # 或
not a # 非流程控制
条件判断
score = 85
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 60:
grade = 'C'
else:
grade = 'D'循环
for 循环:遍历可迭代对象
names = ['Alice', 'Bob', 'Charlie']
for name in names:
print(name)
# 使用 range
for i in range(5):
print(i) # 0, 1, 2, 3, 4while 循环:条件控制
n = 0
while n < 5:
print(n)
n += 1循环控制:
for i in range(10):
if i == 3:
continue # 跳过本次循环
if i == 7:
break # 退出循环
print(i)输入输出
# 输出
print('Hello, World!')
# 格式化输出(推荐 f-string)
name = 'Alice'
age = 25
print(f'{name} is {age} years old')
# 输入
name = input('Enter your name: ')编码与注释
# 文件编码声明
# -*- coding: utf-8 -*-
# 单行注释
"""
多行注释
使用三引号
"""生成器
生成器是惰性求值的迭代器,节省内存。
# 生成器表达式
squares = (x**2 for x in range(1000000))
# 生成器函数
def count_up(n):
i = 0
while i < n:
yield i
i += 1标准库模块
进程与线程
- 多线程:
threading模块,受 GIL 限制 - 多进程:
multiprocessing模块,真正并行
from multiprocessing import Process, Pool, Queue时间处理
import time
from datetime import datetime
# 当前时间
now = datetime.now()
timestamp = time.time()正则表达式
import re
pattern = r'\d+'
re.findall(pattern, 'abc123def')迭代工具
import itertools
# 无限计数器
for i in itertools.count(10, 2):
if i > 20:
break集合扩展
from collections import Counter, defaultdict
# 计数器
Counter(['a', 'b', 'a']) # {'a': 2, 'b': 1}
# 默认值字典
d = defaultdict(list)
d['key'].append('value')常用框架
| 领域 | 框架/库 |
|---|---|
| Web 开发 | Django, Flask |
| 爬虫 | Scrapy, Requests |
| 数据分析 | Pandas, NumPy |
| 机器学习 | TensorFlow, PyTorch |
| 图像处理 | OpenCV |
总结
Python 以其简洁的语法和丰富的生态,成为多领域开发的首选语言。本文涵盖:
- 版本管理:pyenv + uv 构建隔离环境
- 核心语法:变量、数据类型、流程控制
- 集合类型:列表、元组、字典、集合的特点与操作
- 标准库:进程线程、时间、正则、迭代工具
