Python学习笔记·第18天——Python 基础合集
·
Python 基础合集:从零基础到文件操作
本合集涵盖了我从零开始学习 Python 的完整笔记,内容包括:基础语法、数据类型、流程控制、函数、面向对象、高级特性、文件操作等核心模块。每个部分均可独立阅读,也可以按顺序系统学习。
第1章:初识 Python —— 注释与交互模式
1.1 注释的核心作用
- 解释代码的功能、逻辑,方便自己与他人理解代码
- 临时屏蔽调试代码,无需删除
- 标注代码作者、修改时间、注意事项等
1.2 单行注释
使用 # 开头,仅限当前行,适合简短说明。
# 这是单行注释
print("hello,world")
1.3 多行注释(文档注释)
使用三个引号(单/双均可)实现,适合长段说明。
"""
这是多行注释(用三个双引号)
"""
'''
这也是多行注释
也叫文档注释
'''
1.4 文档字符串(Docstring)
为函数/类写文档,可通过 __doc__ 或 help() 查看。
def add(a, b):
"""计算两个数的和。参数 a, b 为数字,返回 a+b 的结果"""
return a + b
1.5 交互模式
- 进入:终端输入
python或python3 - 退出:
exit()或Ctrl+Z/Ctrl+D - 适用场景:验证基础语法、快速测试、临时计算
- 不适用场景:复杂项目开发、需保存代码的场景
第2章:程序的“记忆”——变量与常量
2.1 变量的定义与赋值
变量是存储数据的“容器”,值可以随时修改。Python 无需声明类型,直接用 = 赋值。
age = 18
name = "小明"
height = 1.75
2.2 变量命名规则
- 只能由字母、数字、下划线组成,不能以数字开头
- 不能使用 Python 关键字(如
if、for、print等) - 严格区分大小写
- 建议使用“小写字母 + 下划线”命名(如
user_name)
2.3 变量的核心特性
- 动态类型:同一个变量可以存储不同类型的数据
- 引用赋值:变量存储的是数据的“引用”(内存地址),而非数据本身
2.4 常量
Python 没有原生的常量类型,通过“约定俗成”的方式定义:变量名全部大写,用下划线分隔。
MAX_SPEED = 120 # 约定为常量,不应修改
第3章:数据的“身份”——数据类型
3.1 数据类型总览
- 基本数据类型:整数
int、浮点数float、字符串str、布尔值bool - 复合数据类型:列表
list、元组tuple、字典dict、集合set
3.2 基本数据类型
age = 18 # 整数
price = 99.9 # 浮点数
name = "小明" # 字符串
is_student = True # 布尔值
3.3 类型检查与转换
print(type(100)) # 检查类型
print(int("123")) # 字符串 → 整型
print(float("99.9")) # 字符串 → 浮点
第4章:程序的“宪法”——标识符与关键字
4.1 标识符命名规则
- 只能以字母、下划线开头,后续可跟字母、数字、下划线
- 严格区分大小写
- 不能使用 Python 关键字
4.2 Python 常用关键字
if、else、elif、for、while、break、continue、def、class、import、return、True、False、None、and、or、not、in、is
第5章:程序的“窗口”——输入与输出
5.1 print() 函数
print("hello")
print(1, 2, 3, sep=",") # 自定义分隔符
print("hi", end=" ") # 自定义结尾符,不换行
5.2 格式化输出
name = "云生"
print(f"姓名:{name}") # f-string(推荐)
print("姓名:{}".format(name)) # format()
5.3 input() 函数
name = input("请输入姓名:")
age = int(input("请输入年龄:")) # 需要类型转换
5.4 多值输入
x, y = map(int, input("输入两个数:").split(","))
第6章:程序的“选择”——判断语句
- 单分支:
if 条件: - 双分支:
if...else... - 多分支:
if...elif...else...
if score >= 90:
print("优秀")
elif score >= 60:
print("及格")
else:
print("不及格")
注意:0、空字符串、空列表、空字典、None 转为 False,其余为 True。
第7章:程序的“循环”——for 与 while
7.1 for 循环(固定次数遍历)
for name in ['苹果', '香蕉']:
print(name)
for i in range(1, 6):
print(i)
7.2 while 循环(条件驱动)
i = 1
while i <= 5:
print(i)
i += 1
7.3 循环控制
break:立即终止整个循环continue:跳过当前轮,进入下一轮循环pass:占位符,无实际功能
第8章:字符串的“魔法”——操作与方法
8.1 索引与切片
s = "Python编程"
s[0] # 'P'
s[-1] # '程'
s[0:6] # 'Python'
s[::-1] # '程编nohtyP'(反转字符串)
8.2 常用方法
| 方法 | 作用 | 示例 |
|---|---|---|
strip() |
去除首尾空格 | " py ".strip() → "py" |
replace() |
替换子串 | "py".replace("p","P") → "Py" |
split() |
分割成列表 | "a,b".split(",") → ["a","b"] |
join() |
连接列表为字符串 | "-".join(["a","b"]) → "a-b" |
8.3 转义字符
\n 换行、\t 制表、r 前缀表示原始字符串。
第9章:四大容器——列表、元组、字典、集合
9.1 列表(list)
- 符号:
[],有序、可变、可重复 - 操作:索引切片、
append()、extend()、+组合、*重复、in判断
9.2 元组(tuple)
- 符号:
(),有序、不可变、可重复 - 单元素元组必须加逗号:
(50,)
9.3 字典(dict)
- 符号:
{key:val},键唯一且不可变 - 操作:
dict[key]、get()、遍历keys()/values()/items()
9.4 集合(set)
- 符号:
{},无序、不可重复、自动去重 - 运算:并集
|、交集&、差集-、对称差集^
第10章:一行代码的“魔法”——推导式
# 列表推导式
nums = [i*2 for i in range(5)] # [0,2,4,6,8]
# 字典推导式
data = {i: i*2 for i in range(1,5)} # {1:2, 2:4, 3:6, 4:8}
# 集合推导式
data = {i for i in [1,2,2,3]} # {1,2,3}(自动去重)
# 生成器表达式
gen = (i for i in range(1000000)) # 惰性计算,省内存
第11章:数据的“拆解”——拆包
# 基础拆包
x, y = (10, 20)
# * 号收集剩余元素
one, *rest = [1, 2, 3, 4] # one=1, rest=[2,3,4]
# 字典拆包
a, b = data.values()
# 函数参数拆包
func(*[1, 2]) # 列表元素作为位置参数传入
func(**{'name': 'xx', 'age': 18})# 字典键值作为关键字参数传入
第12章:数据的“复制”——深浅拷贝
| 操作 | 创建新外层容器 | 嵌套可变对象共享 | 修改嵌套影响原数据 |
|---|---|---|---|
| 直接赋值 | 否 | 完全共享 | 影响 |
| 浅拷贝 | 是 | 共享 | 影响 |
| 深拷贝 | 是 | 不共享 | 不影响 |
- 浅拷贝:只复制外层,内部嵌套可变对象仍共享
- 深拷贝:完全独立,修改任何层级互不影响
第13章:代码的“积木”——函数
13.1 定义与调用
def add(a, b):
"""返回两数之和"""
return a + b
result = add(1, 2)
13.2 参数类型
- 位置参数(必须按顺序)
- 默认参数(
def fn(name, age=18)) - 关键字参数(
fn(age=20, name="张三")) *args:任意数量位置参数,打包成元组**kwargs:任意数量关键字参数,打包成字典
13.3 匿名函数(lambda)
add = lambda a, b: a + b
第14章:面向对象(上)——类与对象
class Student:
school = "第一中学" # 类属性(共享)
def __init__(self, name, age):
self.name = name # 实例属性(独立)
self.age = age
def show(self): # 实例方法
print(f"{self.name}, {self.age}")
@classmethod
def change_school(cls, name): # 类方法
cls.school = name
@staticmethod
def add(x, y): # 静态方法
return x + y
第15章:面向对象(下)——继承与方法重写
15.1 继承
class Dog(Animal): # Dog 继承 Animal
pass
15.2 方法重写
子类定义与父类同名方法,覆盖父类逻辑。用 super() 调用父类方法。
15.3 私有属性/方法
__xxx 双下划线开头,外部不可直接访问(名称改写机制)。
15.4 专有方法(魔术方法)
__init__、__str__、__add__、__getitem__ 等,由 Python 自动触发。
第16章:三器一闭——迭代器、生成器、装饰器、闭包
16.1 迭代器
iter()和next()- 实现
__iter__()和__next__()方法
16.2 生成器
- 用
yield关键字,自动实现迭代器协议 - 惰性计算,节省内存
16.3 闭包
- 嵌套函数 + 内层引用外层变量 + 外层返回内层函数
- 核心价值:状态保留、数据封装
16.4 装饰器
- 本质是“函数的函数”,用
@decorator语法糖 - 应用场景:日志记录、性能计时、权限验证
第17章:程序的“保险”——异常处理
try:
result = 10 / 0
except ZeroDivisionError:
print("除数不能为0")
except Exception as e:
print(f"出错了:{e}")
else:
print("无异常时执行")
finally:
print("无论是否异常都执行")
第18章:代码的“组织”——模块与包
18.1 模块导入
import math
from math import sqrt
import math as m
18.2 自定义模块
__name__:判断模块是被执行还是被导入__all__:控制from 模块 import *的导出内容
18.3 包
一个包含 __init__.py 的文件夹,通过 . 确认层级关系。
18.4 pip 安装
pip install pygame -i https://pypi.tuna.tsinghua.edu.cn/simple/
第19章:数据的“家”——文件操作
19.1 文件写入
with open("test.txt", "w", encoding="utf-8") as f:
f.write("Hello World")
19.2 文件读取
with open("test.txt", "r", encoding="utf-8") as f:
print(f.read()) # 读取全部
print(f.readline()) # 读取一行
print(f.readlines()) # 每行作为列表元素
19.3 文件打开模式
r:读模式w:写模式(覆盖)a:追加模式b:二进制模式+:读写模式
19.4 CSV 文件操作
import csv
with open("data.csv") as f:
reader = csv.reader(f)
for row in reader:
print(row)
合集说明
本合集涵盖了 Python 基础的全部核心模块。每个章节都可以独立阅读,也适合作为快速查阅的参考手册。后续将继续更新数据分析(NumPy、Pandas、Matplotlib)和机器学习相关内容。
注:已经使用DeepSeek进行整理精简核心内容,些许不理解的配合个人笔记进行理解。
更多推荐

所有评论(0)