Python详细学习教程
以下是一份系统的Python详细学习教程,从基础到进阶逐步展开:
一、Python基础:语法与核心概念
1. 环境搭建
- 安装Python:从官网下载对应系统版本,勾选“Add Python to PATH”,验证安装:
python --version
(Windows)或python3 --version
(Mac/Linux)。 - 选择IDE:
- 新手推荐:IDLE(Python自带,轻量)、PyCharm Community(免费,功能全)、VS Code(需安装Python插件)。
- 快捷验证:在终端输入
python
进入交互模式,输入print("Hello World")
测试。
2. 基础语法
-
变量与数据类型:
- 变量:
name = "Python"
(无需声明类型,动态类型)。 - 核心类型:
- 数值:
int
(整数)、float
(浮点数)、complex
(复数:3+4j
)。 - 字符串:
str
(单/双引号包裹,支持"a"+"b"
拼接、"a"*3
重复)。 - 布尔值:
True
/False
,支持and
/or
/not
运算。
- 数值:
- 类型转换:
int("123")
、str(123)
、float("3.14")
。
- 变量:
-
运算符:
- 算术:
+
、-
、*
、/
(浮点数除法)、//
(整数除法)、%
(取余)、**
(幂运算:2**3=8
)。 - 比较:
==
(等于)、!=
(不等于)、>
、<
、>=
、<=
。 - 赋值:
a = b = 5
、a += 1
(等价a = a + 1
)。
- 算术:
-
流程控制:
- 条件语句:
score = 85 if score >= 90: print("优秀") elif 80 <= score < 90: print("良好") else: print("加油")
- 循环:
for
循环(遍历序列):for i in range(5): # 0-4 print(i) for fruit in ["苹果", "香蕉"]: print(fruit)
while
循环(条件满足时执行):count = 0 while count < 3: print(count) count += 1 # 避免死循环
- 控制语句:
break
(跳出循环)、continue
(跳过当前轮次)。
- 条件语句:
-
函数:
- 定义:
def 函数名(参数): ... return 结果
。 - 示例:
def add(a, b=0): # b为默认参数 return a + b print(add(2)) # 输出2(b默认0) print(add(2, 3)) # 输出5
- 可变参数:
*args
(接收多个位置参数, tuple类型)、**kwargs
(接收多个关键字参数, dict类型):def sum(*args): return sum(args) print(sum(1, 2, 3)) # 输出6
- 定义:
** 二、数据结构:容器与操作**#### 1. 列表(List)
- 定义:
lst = [1, "a", True]
(有序、可变、可重复)。 - 核心操作:
- 索引:
lst[0]
(取第一个元素)、lst[-1]
(取最后一个)。 - 切片:
lst[1:3]
(取索引1到2的元素)、lst[::2]
(步长2,隔一个取一个)。 - 方法:
lst.append(2)
(末尾添加)、lst.insert(1, "b")
(指定位置插入)、lst.remove("a")
(删除元素)、lst.sort()
(排序)。 - 列表推导式(高效创建列表):
squares = [x**2 for x in range(5)] # [0, 1, 4, 9, 16] even_numbers = [x for x in [1,2,3,4] if x % 2 == 0] # [2,4]
- 索引:
2. 元组(Tuple)
- 定义:
tup = (1, 2, 3)
(有序、不可变,可通过()
或直接逗号分隔创建)。 - 特点:不可修改元素,适合存储固定数据(如坐标、配置项),比列表更轻量。
- 操作:支持索引、切片,但无
append
等修改方法。
3. 字典(Dictionary)
- 定义:
person = {"name": "Alice", "age": 20}
(键值对集合,无序→Python 3.7+有序)。 - 核心操作:
- 访问:
person["name"]
或person.get("name")
(get
避免键不存在报错)。 - 修改:
person["age"] = 21
(新增或更新键值对)。 - 方法:
person.keys()
(所有键)、person.values()
(所有值)、person.items()
(所有键值对)。 - 字典推导式:
squares = {x: x**2 for x in range(4)} # {0:0, 1:1, 2:4, 3:9}
- 访问:
4. 集合(Set)
- 定义:
s = {1, 2, 3}
或s = set([1,2,3])
(无序、无重复元素)。 - 核心操作:
- 去重:
set([1,1,2])
→{1,2}
。 - 运算:交集(
s1 & s2
)、并集(s1 | s2
)、差集(s1 - s2
)。 - 方法:
s.add(4)
(添加元素)、s.remove(1)
(删除元素)。
- 去重:
三、进阶语法与核心特性
1. 字符串高级操作
- 格式化:
- f-string(推荐):
f"Name: {name}, Age: {age}"
。 format
方法:"Name: {0}, Age: {1}".format(name, age)
。
- f-string(推荐):
- 常用方法:
str.split(",")
(按逗号分割)、str.join(["a", "b"])
(拼接列表为字符串)。str.strip()
(去除首尾空格)、str.upper()
(转大写)、str.lower()
(转小写)。- 正则表达式(
re
模块):匹配、替换文本,例如:import re text = "Email: test@example.com" match = re.search(r"\w+@\w+\.\w+", text) # 匹配邮箱 print(match.group()) # 输出test@example.com
2. 文件操作
- 基本流程:
open()
→ 读写 →close()
,推荐用with
语句自动关闭文件:# 写入文件 with open("test.txt", "w", encoding="utf-8") as f: # "w":覆盖写入;"a":追加 f.write("Hello, File!") # 读取文件 with open("test.txt", "r", encoding="utf-8") as f: content = f.read() # 读全部 # content = f.readline() # 读一行 # content = f.readlines() # 读所有行到列表 print(content)
3. 异常处理
- 捕获错误避免程序崩溃:
try: result = 10 / 0 except ZeroDivisionError: print("除数不能为0") except Exception as e: # 捕获其他异常 print(f"出错了:{e}") else: # 无异常时执行 print(f"结果:{result}") finally: # 无论是否异常都执行(如关闭资源) print("操作结束")
4. 模块与包
- 模块:一个
.py
文件,通过import
导入:import math # 导入整个模块 print(math.sqrt(4)) # 2.0 from math import sqrt # 导入特定函数 print(sqrt(9)) # 3.0
- 常用标准库:
math
(数学运算)、datetime
(日期时间)、os
(系统操作)、json
(JSON处理)。
四、面向对象编程(OOP)
1. 类与对象
- 类:对象的模板,定义属性和方法;对象:类的实例。
class Person: # 初始化方法(构造函数) def __init__(self, name, age): self.name = name # 实例属性 self.age = age # 实例方法 def greet(self): return f"Hello, I'm {self.name}" # 创建对象 p = Person("Bob", 25) print(p.name) # Bob print(p.greet()) # Hello, I'm Bob
2. 继承与多态
- 继承:子类复用父类代码,可重写方法:
class Student(Person): # 继承Person def __init__(self, name, age, major): super().__init__(name, age) # 调用父类初始化 self.major = major # 重写父类方法 def greet(self): return f"Hello, I'm {self.name}, majoring in {self.major}"
- 多态:不同对象调用同一方法表现不同行为。
五、高级应用方向
- Web开发:学习Flask(轻量)或Django(全栈),开发API或网站。
- 数据分析:用Pandas处理表格数据,NumPy做数值计算,Matplotlib/Seaborn可视化。
- 自动化:用Selenium自动化浏览器,PyAutoGUI控制鼠标键盘。
- 机器学习:Scikit-learn(传统ML)、TensorFlow/PyTorch(深度学习)。
学习资源
- 书籍:《Python编程:从入门到实践》(入门)、《流畅的Python》(进阶)。
- 实践:LeetCode(算法题)、Kaggle(数据分析项目)、GitHub(开源项目贡献)。
通过“语法学习→代码练习→项目实践”的循环,逐步提升Python能力。