目录
- [1. Python 简介](#1. Python 简介)
- [2. 环境搭建](#2. 环境搭建)
- [2.1 安装 Python](#2.1 安装 Python)
- [2.2 选择编辑器](#2.2 选择编辑器)
- [3. 第一个 Python 程序](#3. 第一个 Python 程序)
- [4. 变量与数据类型](#4. 变量与数据类型)
- [4.1 变量赋值](#4.1 变量赋值)
- [4.2 基本数据类型](#4.2 基本数据类型)
- [5. 运算符](#5. 运算符)
- [5.1 算术运算符](#5.1 算术运算符)
- [5.2 比较与逻辑运算符](#5.2 比较与逻辑运算符)
- [6. 控制流](#6. 控制流)
- [6.1 条件语句](#6.1 条件语句)
- [6.2 循环语句](#6.2 循环语句)
- [7. 函数](#7. 函数)
- [8. 数据结构](#8. 数据结构)
- [8.1 列表](#8.1 列表)
- [8.2 元组](#8.2 元组)
- [8.3 字典](#8.3 字典)
- [8.4 集合](#8.4 集合)
- [9. 模块与包](#9. 模块与包)
- [9.1 导入模块](#9.1 导入模块)
- [9.2 自定义模块](#9.2 自定义模块)
- [10. 文件操作](#10. 文件操作)
- [11. 异常处理](#11. 异常处理)
- [12. 总结](#12. 总结)
1. Python 简介
Python 是一种广泛使用的解释型、高级编程语言,由 Guido van Rossum 在 1991 年首次发布。Python 的设计哲学强调代码的可读性和简洁性,使用缩进来划分代码块,摒弃了其他语言中常见的大括号和分号,让代码看起来更干净、更自然。
Python 目前稳居 TIOBE 编程语言排行榜前列,其应用场景非常广泛:
- Web 开发:Django、Flask、FastAPI 等框架让后端开发变得高效便捷。
- 数据科学:Pandas、NumPy、Matplotlib 等库是数据分析与可视化的利器。
- 人工智能 / 机器学习:TensorFlow、PyTorch、Scikit-learn 等框架支撑着从学术研究到工业落地的 AI 应用。
- 自动化运维:脚本编写、系统管理、CI/CD 流水线中 Python 随处可见。
- 网络爬虫:Requests、Scrapy、BeautifulSoup 等工具让数据采集变得简单。
Python 的社区生态极为活跃,PyPI(Python Package Index)上托管了超过 40 万个第三方包,几乎所有你能想到的需求,都能找到现成的库来加速开发。
2. 环境搭建
2.1 安装 Python
前往 python.org 下载对应操作系统的安装包,推荐选择 Python 3.10 或更高版本。安装时的注意事项:
- Windows 用户 :务必勾选 Add Python to PATH 选项,否则后续在命令行中无法直接使用
python命令。建议选择 "Customize installation" 自定义安装路径,避免路径中包含空格或中文字符。 - macOS 用户 :系统自带 Python 2.7(已过时),建议通过 Homebrew 安装:
brew install python@3.12,或直接下载官方 pkg 安装包。 - Linux 用户 :多数发行版已预装 Python 3,可通过包管理器升级,如 Ubuntu:
sudo apt install python3.12。
安装完成后,在终端中验证:
bash
python --version
# 或
python3 --version
同时检查 pip(Python 包管理工具)是否可用:
bash
pip --version
# 或
pip3 --version
2.2 选择编辑器
推荐以下主流编辑器,按使用场景选择:
- Visual Studio Code(免费、跨平台):安装 Python 扩展后即可获得语法高亮、智能提示、调试支持、Jupyter Notebook 集成等强大功能,是大多数开发者的首选。
- PyCharm(社区版免费):JetBrains 出品,功能全面,特别适合大型项目开发,提供强大的代码补全、重构和调试工具。
- Jupyter Notebook / JupyterLab:交互式编程环境,适合数据科学、教学和原型验证,可分段执行代码并实时查看结果。
- IDLE:Python 官方自带的简易编辑器,适合初学者快速上手,但功能相对有限。
建议初学者从 VS Code + Python 扩展 组合开始,轻量且强大,后续可根据需求切换到 PyCharm 等专业 IDE。
3. 第一个 Python 程序
创建 hello.py 文件,写入以下代码:
python
print("Hello, World!")
运行方式有多种:
- 命令行运行 :在终端中执行
python hello.py,你会看到输出Hello, World!。 - IDE 中运行:在 VS Code 或 PyCharm 中打开文件,点击右上角的运行按钮。
- 交互式环境 :在终端输入
python进入交互模式,直接输入print("Hello, World!")回车即可看到结果。
输出 Hello, World! 标志着 Python 环境配置成功。这个简单的程序背后,Python 解释器完成了词法分析、语法解析、编译成字节码、再由虚拟机执行等一系列步骤,但对于初学者来说,只需关注代码本身即可。
4. 变量与数据类型
4.1 变量赋值
Python 是动态类型语言,变量无需声明类型,类型由赋值时自动推断:
python
name = "Alice" # 字符串
age = 25 # 整数
height = 1.68 # 浮点数
is_student = True # 布尔值
Python 变量命名遵循以下规则:
- 只能包含字母、数字和下划线,不能以数字开头。
- 区分大小写,
name和Name是两个不同的变量。 - 不能使用 Python 关键字(如
if、for、class等)作为变量名。 - 推荐使用蛇形命名法(snake_case),如
user_name、max_value。
Python 还支持多重赋值,一行代码交换值:
python
a, b = 10, 20
a, b = b, a # 交换后 a=20, b=10
4.2 基本数据类型
| 类型 | 示例 | 说明 |
|---|---|---|
| 整数 int | 42 |
任意精度整数,Python 3 中无大小限制 |
| 浮点数 float | 3.14 |
双精度浮点数,遵循 IEEE 754 标准 |
| 字符串 str | "hello" |
Unicode 字符串,支持单引号或双引号 |
| 布尔值 bool | True / False |
逻辑值,注意首字母大写 |
| 空值 NoneType | None |
表示无值,类似其他语言的 null |
使用 type() 函数查看变量类型:
python
print(type(age)) # <class 'int'>
print(type(name)) # <class 'str'>
print(type(height)) # <class 'float'>
类型转换函数:
python
int("42") # 字符串 → 整数:42
float("3.14") # 字符串 → 浮点数:3.14
str(100) # 数字 → 字符串:"100"
bool(1) # 非零值 → True
5. 运算符
5.1 算术运算符
python
a = 10
b = 3
print(a + b) # 13(加法)
print(a - b) # 7(减法)
print(a * b) # 30(乘法)
print(a / b) # 3.333...(除法,结果是浮点数)
print(a // b) # 3(整除,向下取整)
print(a % b) # 1(取余)
print(a ** b) # 1000(幂运算,10 的 3 次方)
补充说明:
/总是返回浮点数,即使两个整数相除。//整除向下取整:-10 // 3结果为-4(而非-3)。**优先级高于其他算术运算符,2 ** 3 ** 2等价于2 ** 9 = 512(右结合)。
5.2 比较与逻辑运算符
python
x = 5
y = 10
print(x == y) # False(等于)
print(x != y) # True(不等于)
print(x < y) # True(小于)
print(x > 0 and y < 20) # True(逻辑与)
print(x > 0 or y < 0) # True(逻辑或)
print(not x > 0) # False(逻辑非)
赋值运算符(复合赋值):
python
n = 10
n += 5 # 等价于 n = n + 5
n *= 2 # 等价于 n = n * 2
n //= 3 # 等价于 n = n // 3
6. 控制流
6.1 条件语句
python
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
else:
grade = "D"
print(f"成绩等级:{grade}")
注意事项:
if和elif后面必须跟条件表达式,以冒号结尾。- Python 使用缩进(通常 4 个空格)来表示代码块,同级缩进的代码属于同一代码块。
- 条件表达式支持链式比较:
80 <= score < 90等价于score >= 80 and score < 90。 - 如果某个分支暂时不需要处理,可以用
pass占位,避免语法错误。
6.2 循环语句
for 循环:
python
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
# 使用 range() 生成数字序列
for i in range(5):
print(i) # 输出 0,1,2,3,4
# range(start, stop, step)
for i in range(1, 10, 2):
print(i) # 输出 1,3,5,7,9
while 循环:
python
count = 0
while count < 5:
print(count)
count += 1
循环控制关键字:
break:立即跳出当前循环,不再执行后续迭代。continue:跳过当前迭代的剩余代码,进入下一次循环。else:循环正常结束(未触发break)时执行。
python
for i in range(5):
if i == 3:
break
print(i)
else:
print("循环正常结束") # 不会执行,因为 break 跳出了循环
7. 函数
使用 def 关键字定义函数:
python
def greet(name, greeting="Hello"):
"""向用户打招呼的函数"""
return f"{greeting}, {name}!"
print(greet("Alice")) # Hello, Alice!
print(greet("Bob", "Hi")) # Hi, Bob!
Python 函数支持多种参数类型:
- 位置参数 :按顺序传入,如
greet("Alice", "Hi")。 - 默认参数 :在定义时给出默认值,调用时可省略,如
greeting="Hello"。 - 关键字参数 :通过参数名指定,可打乱顺序,如
greet(greeting="Hi", name="Bob")。 - 可变参数 :
*args接收任意数量的位置参数,**kwargs接收任意数量的关键字参数。
python
def add_all(*args):
"""计算任意数量数字的和"""
return sum(args)
print(add_all(1, 2, 3, 4, 5)) # 15
def print_info(**kwargs):
"""打印任意键值对"""
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=25, city="Shanghai")
匿名函数(lambda):
python
square = lambda x: x ** 2
print(square(5)) # 25
# 常用于排序等场景
students = [("Alice", 85), ("Bob", 92), ("Charlie", 78)]
students.sort(key=lambda s: s[1]) # 按成绩排序
8. 数据结构
8.1 列表(list)
列表是 Python 中最常用的可变序列,可以存储任意类型的元素:
python
numbers = [1, 2, 3, 4, 5]
numbers.append(6) # 末尾追加
numbers.insert(0, 0) # 指定位置插入
print(numbers[1:4]) # 切片:[1, 2, 3]
print(numbers[-1]) # 倒数第一个元素:6
numbers.remove(3) # 删除指定值
popped = numbers.pop() # 弹出末尾元素
列表推导式(List Comprehension)是 Python 的一大特色,能简洁地生成新列表:
python
squares = [x ** 2 for x in range(10)] # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
evens = [x for x in range(20) if x % 2 == 0] # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
8.2 元组(tuple)
元组是不可变的序列,定义后元素不能修改:
python
point = (3, 4)
print(point[0]) # 3
x, y = point # 元组解包
print(x, y) # 3 4
元组常用于:
- 存储不应被修改的数据(如坐标、配置项)。
- 作为字典的键(因为元组是可哈希的)。
- 从函数返回多个值。
python
def get_user_info():
return "Alice", 25, "alice@example.com" # 返回元组
name, age, email = get_user_info()
8.3 字典(dict)
字典是键值对集合,在 Python 3.7+ 中保持插入顺序:
python
person = {"name": "Alice", "age": 25}
print(person["name"]) # Alice
person["city"] = "Shanghai" # 添加键值对
person.get("gender", "未知") # 安全获取,不存在时返回默认值
字典常用方法:
python
person.keys() # dict_keys(['name', 'age', 'city'])
person.values() # dict_values(['Alice', 25, 'Shanghai'])
person.items() # dict_items([('name', 'Alice'), ...])
for key, value in person.items():
print(f"{key}: {value}")
字典推导式:
python
squares_dict = {x: x ** 2 for x in range(5)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
8.4 集合(set)
集合是无序的不重复元素集合,基于哈希表实现:
python
a = {1, 2, 3}
b = {2, 3, 4}
print(a & b) # {2, 3}(交集)
print(a | b) # {1, 2, 3, 4}(并集)
print(a - b) # {1}(差集)
print(a ^ b) # {1, 4}(对称差集)
集合常用于去重:
python
nums = [1, 2, 2, 3, 3, 3, 4]
unique = set(nums) # {1, 2, 3, 4}
9. 模块与包
9.1 导入模块
python
import math
print(math.sqrt(16)) # 4.0
from datetime import datetime
print(datetime.now())
# 使用别名
import numpy as np
arr = np.array([1, 2, 3])
常用的标准库模块:
| 模块 | 用途 |
|---|---|
os |
操作系统接口,文件路径操作 |
sys |
系统相关参数和函数 |
math |
数学函数 |
random |
生成随机数 |
datetime |
日期和时间处理 |
json |
JSON 数据编解码 |
re |
正则表达式 |
collections |
高级数据结构(如 Counter、defaultdict) |
9.2 自定义模块
将代码保存为 my_module.py,在同一目录下通过 import my_module 引用。模块中的函数和变量可以通过 my_module.xxx 访问。
如果模块中包含了 if __name__ == "__main__": 代码块,当该文件被直接运行时,该代码块会执行;当被导入时,则不会执行:
python
# my_module.py
def hello():
print("Hello from my_module!")
if __name__ == "__main__":
hello() # 只在直接运行时执行
10. 文件操作
Python 使用 open() 函数读写文件,推荐配合 with 语句自动管理资源,无需手动关闭文件:
python
# 写入文件
with open("test.txt", "w", encoding="utf-8") as f:
f.write("Hello, Python!\n")
f.write("第二行内容\n")
# 读取文件
with open("test.txt", "r", encoding="utf-8") as f:
content = f.read()
print(content)
# 按行读取
with open("test.txt", "r", encoding="utf-8") as f:
for line in f:
print(line.strip()) # strip() 去除行尾换行符
常用文件模式:
| 模式 | 说明 |
|---|---|
r |
只读,文件必须存在 |
w |
写入,清空已有内容,文件不存在则创建 |
a |
追加,在文件末尾添加内容 |
rb |
二进制只读 |
wb |
二进制写入 |
r+ |
读写模式,文件必须存在 |
处理 JSON 文件:
python
import json
data = {"name": "Alice", "age": 25}
with open("data.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
with open("data.json", "r", encoding="utf-8") as f:
loaded = json.load(f)
print(loaded) # {'name': 'Alice', 'age': 25}
11. 异常处理
使用 try...except 捕获异常,避免程序崩溃:
python
try:
num = int(input("请输入一个数字:"))
result = 10 / num
except ValueError:
print("输入的不是有效数字")
except ZeroDivisionError:
print("除数不能为零")
except Exception as e:
print(f"发生未知错误:{e}")
else:
print(f"计算结果是:{result}")
finally:
print("程序执行完毕")
结构说明:
try:放置可能引发异常的代码。except:捕获特定类型异常并处理,可以写多个except捕获不同异常。else:在无异常时执行,适合放正常逻辑。finally:无论是否异常都会执行,通常用于释放资源、关闭连接等。
自定义异常:
python
class InvalidAgeError(Exception):
"""自定义异常:年龄不合法"""
pass
def set_age(age):
if age < 0 or age > 150:
raise InvalidAgeError(f"年龄 {age} 不合法")
print(f"年龄设置为 {age}")
try:
set_age(-1)
except InvalidAgeError as e:
print(e)
12. 总结
本文从 Python 简介、环境搭建、基础语法、控制流、函数、数据结构、模块与包、文件操作到异常处理,系统梳理了 Python 的核心语法知识。掌握了这些内容,你已经具备了编写实用脚本的能力。
下一步学习建议:
- 面向对象编程(OOP):类、对象、继承、多态。
- 常用标准库 :
os、sys、re、datetime、collections等。 - 第三方库:根据兴趣方向选择,如数据分析(Pandas)、Web 开发(Flask/Django)、爬虫(Requests/Scrapy)。
- 项目实战:通过实际项目巩固所学,如编写一个命令行工具、一个简单的 Web 应用或一个数据分析脚本。
多动手写代码是快速进步的最佳方式,祝你在 Python 学习之路上越走越远!