Python 基础教程 · 10 分钟上手实操课
面向零基础初学者的 Python 实操教程,10 分钟从安装运行开始,讲解变量与数据结构、函数与模块、文件 I/O 与异常处理,最后实战完成 CSV 数据分析小工具。
视频讲解
Python 基础教程 · 10 分钟上手实操课
视频时长:10 分钟 | 平台:YouTube | 目标观众:零基础初学者 这是一份实操驱动的录播脚本,每一句讲解都紧跟一次真实的终端演示。请按章节顺序录制,确保观众每 10–20 秒都能看到屏幕上的变化。
开场 Hook(0:00 – 0:20)
【镜头:紧贴终端光标,黑色背景】
【旁白】
Python 是全球最受欢迎的编程语言之一,从谷歌、Instagram 到 NASA 都在用它。 它能写网站、做数据分析、自动化办公、甚至驱动人工智能模型——这些场景你今天都会看到一点。 Python 的设计哲学是"代码应该像英语一样好读",所以同样一个功能,Python 往往只需要其他语言 1/3 的代码量。 学习曲线平缓,生态极其丰富,是初学者进入编程世界最友好的入口之一。 接下来的 10 分钟,我会带你从一行代码写起,到一个完整的小项目结束。我们直接开始。
第一章 · 第一次运行 Python(0:20 – 2:20)
章节介绍
Python 是一门解释型、动态类型的高级语言——你不用管内存,不用声明变量类型,写完就能直接运行。这种"开箱即用"的特性让它的开发反馈非常快,非常适合初学者。
这一章我们完成三件事:确认环境、用交互模式写第一行代码、把代码保存成 .py 文件运行。
Demo 1.1 · 检查 Python 是否已安装
Screen
打开 macOS 的 Terminal(macOS/Linux)或 PowerShell(Windows)。屏幕中央是光标闪烁的命令行。
Command
python3 --version
Output
Python 3.12.4
Narration
我们先确认一下 Python 装好了没有。注意一定要写
python3——很多系统同时装了 Python 2 和 Python 3,Python 2 已经在 2020 年停止维护了,我们只用 3。看到版本号就说明一切就绪。
Demo 1.2 · 用交互模式当计算器
Screen
终端里继续敲命令。输入后立即回车,下方立刻出现结果。
Command
python3
Output
Python 3.12.4 (main, ...)
Type "help", "copyright", "credits" or "license" for more information.
>>>
Narration
输入
python3之后,我们进入了 Python 的交互模式——你写一行,它立刻执行一行。这个>>>就是提示符。你可以把它当成一个超级计算器。
Demo 1.3 · 写第一行代码
Screen
光标停在 >>> 后面,我们开始输入。
Command
print("Hello, Python!")
2 + 3
print("I'm", 25, "years old")
Output
Hello, Python!
5
I'm 25 years old
Narration
print()是 Python 里第一个要认识的函数——它的作用就是把东西打印到屏幕上。 你看,我可以直接算2 + 3,Python 立刻告诉我答案是 5。 第二个 print 我把字符串和数字混在一起传进去,Python 自动用空格把它们拼起来。这就是动态类型的好处——你不用告诉 Python 哪些是字符串、哪些是数字,它自己会判断。 我们用exit()退出交互模式。
Demo 1.4 · 把代码写进文件再运行
Screen
退出交互模式后,我们新建一个文件。先用 cd 切到桌面,新建一个 python_demo 文件夹。
Command
cd ~/Desktop
mkdir python_demo
cd python_demo
touch hello.py
ls
Output
hello.py
Narration
交互模式适合做实验,但真正的代码要存在文件里。我们创建一个
hello.py——Python 文件的约定后缀就是.py。 注意cd是切换目录,mkdir创建文件夹,touch创建空文件,ls查看当前目录的内容。这是所有写代码的人每天都要用的几个命令。
Demo 1.5 · 用 echo 写入第一段脚本
Screen
我们用 cat 命令直接把代码写进 hello.py。
Command
cat > hello.py << 'EOF'
name = "Python"
print(f"Hello, {name}!")
print("2 + 3 =", 2 + 3)
EOF
cat hello.py
Output
name = "Python"
print(f"Hello, {name}!")
print("2 + 3 =", 2 + 3)
Narration
这里用了一个小技巧:
cat > 文件 << 'EOF'让我们从终端直接往文件里写多行内容,写完用EOF结束。 注意那个f"Hello, {name}!"——这是 Python 的f-string,在字符串前面加一个f,就能用大括号直接嵌入变量,比传统的拼接方式清爽多了。
Demo 1.6 · 运行脚本
Screen
在终端输入运行命令,光标跳到下一行,结果立刻出现。
Command
python3 hello.py
Output
Hello, Python!
2 + 3 = 5
Narration
python3 hello.py这一行命令的意思是:用 Python 解释器去执行hello.py这个文件。 看,输出和我们在交互模式里看到的一模一样。这就是 Python 最朴素的开发循环:写文件 → 运行 → 看结果。 第一章结束,我们已经能跑 Python 了。
第一章小结
Key Takeaway:Python 的开发循环是"写文件 → python3 文件名 → 看输出",没有编译、没有复杂的工程配置。
Practical Use Case:日常学习、写小工具、做数据探索时,绝大多数人都用这种最简单的文件 + 命令行的方式。
Transition:接下来我们要把数据存起来、并且组织好——第二章讲变量和数据结构。
第二章 · 变量与数据结构(2:20 – 4:40)
章节介绍
数据本身没有价值,被组织起来的数据才有价值。这一章我们认识 Python 内置的四大容器:列表、元组、字典、集合,以及 Python 最优雅的语法糖——列表推导式。
Demo 2.1 · 变量赋值
Screen
继续在终端里,进入 Python 交互模式。
Command
python3
Output
>>>
Narration
重新进入交互模式。这次我们玩数据。
Command
age = 25
name = "小明"
pi = 3.14159
is_student = True
print(type(age), type(name), type(pi), type(is_student))
Output
<class 'int'> <class 'str'> <class 'float'> <class 'bool'>
Narration
在 Python 里,
=不是"等于",是赋值——把右边的值装进左边这个变量。 你看,我写了四个变量,但完全没声明类型。type()函数告诉我们:age 是整数,name 是字符串,pi 是浮点数,is_student 是布尔值。 这是动态类型——Python 自己会根据赋的值决定类型,省掉了大量样板代码。
Demo 2.2 · 列表:最常用的容器
Screen
继续在交互模式。
Command
fruits = ["苹果", "香蕉", "橙子"]
fruits.append("葡萄")
fruits[0]
fruits[-1]
len(fruits)
Output
['苹果', '香蕉', '橙子', '葡萄']
'苹果'
'葡萄'
4
Narration
方括号
[]定义的就是列表——有序、可改、可重复。append()在末尾加一个;fruits[0]取第一个元素;fruits[-1]取最后一个——负数索引是从后往前数;len()拿到长度。 这是 Python 里出场率最高的数据结构,没有之一。
Demo 2.3 · 字典:用名字取数据
Screen
继续。
Command
user = {"name": "小明", "age": 25, "city": "北京"}
user["name"]
user.get("email", "未填写")
user["age"] = 26
user
Output
'小明'
'未填写'
{'name': '小明', 'age': 26, 'city': '北京'}
}
Narration
花括号
{}配合键值对,就是字典——你不再用位置(第几个)取数据,而是用"名字"取。 当你不知道某个键存不存在时,用.get()而不是[]——后者会直接报错,前者可以给一个默认值。 修改值只要重新赋值就行。这跟列表、字典的本质是一样的:Python 里所有东西都是对象,操作它们都靠方法。
Demo 2.4 · 集合:自动去重
Screen
继续。
Command
nums = [1, 2, 2, 3, 3, 3, 4]
unique = set(nums)
unique
"苹果" in unique
Output
{1, 2, 3, 4}
False
Narration
集合用
set()创建,最大的特点就是去重——同样元素只留一个。 而且in判断在集合里是 O(1) 的速度,比列表快得多。要快速判断某个东西存不存在,用集合;要保留顺序,用列表。
Demo 2.5 · 列表推导式:一行搞定循环
Screen
继续。
Command
squares = [x ** 2 for x in range(10) if x % 2 == 0]
squares
Output
[0, 4, 16, 36, 64]
Narration
这一行是 Python 最优雅的语法之一——列表推导式。 从 0 到 9 里挑出偶数,每个数算平方,放进列表。 读法是:[对每个 x 做什么 for x in 范围 if 条件]。 它把"遍历 + 筛选 + 转换"压成一行。但记住,超过 2 层嵌套就该拆成普通循环,否则反而不易读。
第二章小结
Key Takeaway:列表管顺序、字典管键值、集合管去重、列表推导式管"一行做完循环"——选对容器,代码量少一半。
Practical Use Case:处理 JSON 数据、写爬虫、做数据分析时,这四个数据结构是 90% 场景的主力。
Transition:数据有了,下一步要把"重复的逻辑"封装起来——第三章讲函数和模块。
第三章 · 函数与模块(4:40 – 6:40)
章节介绍
复制粘贴是万恶之源。函数让你"给一段代码起个名字",模块让你"把相关函数放进同一个文件"。这一章我们写第一个自己的工具。
Demo 3.1 · 定义第一个函数
Screen
退出交互模式,新建一个文件。
Command
exit()
cat > utils.py << 'EOF'
def greet(name: str, greeting: str = "你好") -> str:
return f"{greeting},{name}!"
print(greet("小明"))
print(greet("小红", "欢迎"))
EOF
python3 utils.py
Output
你好,小明!
欢迎,小红!
Narration
def关键字定义函数,圆括号里是参数,return返回结果。 注意greeting: str = "你好"——这是带默认值的参数。调用时不传就用默认值,传了就用你的。 那个-> str是类型提示,不影响运行,但 IDE 和读者能一眼看出应该返回什么类型——非常推荐写上。
Demo 3.2 · 用 import 加载模块
Screen
继续在同一文件里加内容。
Command
cat >> utils.py << 'EOF'
import math
import random
print("圆周率是", math.pi)
print("随机选一个幸运儿:", random.choice(["小明", "小红", "小刚"]))
EOF
python3 utils.py
Output
你好,小明!
欢迎,小红!
圆周率是 3.141592653589793
随机选一个幸运儿: 小红
Narration
import把别人写好的模块加载进来。Python 自带了标准库,math 做数学、random 生成随机数、datetime 处理时间——这些都是开箱即用。 看到math.pi这种写法了吗?模块名 + 点 + 函数名,这就是命名空间,避免名字冲突。 永远不要写from module import *——你不知道哪些名字进了你的代码库,会非常难调试。
Demo 3.3 · 拆成两个文件:自制模块
Screen
新建第二个文件 app.py,让 app.py 引用 utils.py。
Command
cat > app.py << 'EOF'
from utils import greet
def main():
users = ["小明", "小红", "小刚"]
for u in users:
print(greet(u, "晚上好"))
main()
EOF
ls
python3 app.py
Output
app.py
utils.py
晚上好,小明!
晚上好,小红!
晚上好,小刚!
Narration
现在我们有两个文件:
utils.py装着通用函数,app.py是主程序。from utils import greet的意思是:从 utils 模块里只把 greet 这一项拿出来用。 模块就是.py文件,没有黑魔法。Python 看到import就去同目录找,找到就把那个文件执行一遍,把里面的函数、变量给你用。 注意——文件名utils.py千万别和标准库冲突,否则会被你自己的文件覆盖掉。
Demo 3.4 · 默认参数陷阱
Screen
回到交互模式演示一个常见 bug。
Command
python3
Output
>>>
Command
def add_item(item, bucket=[]):
bucket.append(item)
return bucket
print(add_item("苹果"))
print(add_item("香蕉"))
print(add_item("橘子", []))
Output
['苹果']
['苹果', '香蕉']
['橘子']
Narration
注意看!我连续两次调用
add_item,第一次返回['苹果'],第二次变成了['苹果', '香蕉']——坑就这么埋下了。 这是 Python 最经典的陷阱之一:默认参数只在函数定义时创建一次。那个空列表被所有调用共享。 正确写法是把默认值设成None,在函数内部再初始化。
Command
def add_item(item, bucket=None):
if bucket is None:
bucket = []
bucket.append(item)
return bucket
Output
(定义成功,无输出)
Narration
把默认参数改成
None,再用if初始化——这是Python 圈里人人都该会的肌肉记忆。
第三章小结
Key Takeaway:def 定义函数,import 加载模块——这两个词是 Python 工程化的起点。
Practical Use Case:写工具脚本、做后端服务、做数据处理流水线,函数和模块都是最基本的组织单位。
Transition:程序现在能写、能跑、能复用——但还缺少两件事:记忆(文件)和韧性(异常处理)。
第四章 · 文件 I/O 与异常处理(6:40 – 8:30)
章节介绍
程序运行在内存里,关掉就没了。要让数据"活下来",得写到文件。同时,真实世界充满意外——文件不存在、权限不够、网络断了——异常处理就是程序的保险。
Demo 4.1 · 写入文件
Screen
退出交互模式,新建一个文件。
Command
exit()
cat > diary.py << 'EOF'
from datetime import datetime
entry = input("写一句今天的心情:")
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
with open("diary.txt", "a", encoding="utf-8") as f:
f.write(f"[{timestamp}] {entry}\n")
print("已保存到 diary.txt")
EOF
python3 diary.py
Output
写一句今天的心情:今天学完了 Python 基础!
已保存到 diary.txt
Narration
input()让程序停下来等你输入。datetime.now()拿到当前时间。 重点是with open(...) as f——with 语句会自动在代码块结束时关闭文件,哪怕中间出错了也会关。"a"是追加模式(append),每次写都接着上次的内容往下加,不会覆盖。
Demo 4.2 · 读取并显示全部日记
Screen
再跑一次刚才的脚本,录入第二条;然后我们写一段读取的代码。
Command
echo "今天学了 Python 基础!" | python3 diary.py
cat > read_diary.py << 'EOF'
with open("diary.txt", "r", encoding="utf-8") as f:
print(f.read())
EOF
python3 read_diary.py
Output
[2026-07-06 14:23:01] 今天学了 Python 基础!
Narration
"r"是读取模式,f.read()一次性读出全部内容。 注意encoding="utf-8"——不加这一行,中文会乱码。这是个新手必踩的坑。
Demo 4.3 · 处理文件不存在的异常
Screen
新建一段演示异常处理的脚本。
Command
cat > safe_read.py << 'EOF'
filename = input("要读取哪个文件?")
try:
with open(filename, "r", encoding="utf-8") as f:
content = f.read()
print(f"读取到 {len(content)} 个字符")
except FileNotFoundError:
print(f"❌ 文件 {filename} 不存在")
except PermissionError:
print(f"❌ 没有权限读取 {filename}")
EOF
echo "不存在的.txt" | python3 safe_read.py
echo "diary.txt" | python3 safe_read.py
Output
❌ 文件 不存在的.txt 不存在
读取到 65 个字符
Narration
try / except是 Python 的异常处理——试着做,出错就走备用方案。 注意我写的是except FileNotFoundError——指定具体错误类型。永远不要写裸的except:——它会把Ctrl+C也吞掉,让你连程序都停不下来。 第一种情况文件不存在,触发FileNotFoundError;第二种正常读到内容。这就是程序的韧性。
第四章小结
Key Takeaway:with 管资源开关,try/except 管意外——这两个写在一起,你的程序就能在真实世界稳定运行。
Practical Use Case:任何要读取配置文件、解析日志、抓取网络数据的脚本,都需要这套组合拳。
Transition:四个基础概念我们都学完了——接下来把它们组合起来,做一个完整的小项目。
第五章 · 实战项目:CSV 数据分析小工具(8:30 – 9:40)
项目介绍
我们要做一个真实可用的小工具:读取一个 CSV 销售数据文件,统计每个产品的总销售额和平均价格,并把报告写回一个新的文件。 这个项目会把第一章到第四章的所有概念串起来:变量与字典存数据、函数封装逻辑、文件 I/O 读写、异常处理兜底。
Demo 5.1 · 准备测试数据
Screen
我们先创建一个 sales.csv 模拟销售数据。
Command
cat > sales.csv << 'EOF'
product,price,quantity
苹果,5.5,100
香蕉,3.2,150
橙子,4.8,80
苹果,5.5,50
香蕉,3.2,200
EOF
cat sales.csv
Output
product,price,quantity
苹果,5.5,100
香蕉,3.2,150
橙子,4.8,80
苹果,5.5,50
香蕉,3.2,200
Narration
这就是一个普通的 CSV 文件:每行一条记录,逗号分隔字段。 我们的任务是:把相同产品的销售额加起来,算平均价格,输出报告。
Demo 5.2 · 写分析脚本
Screen
创建 analyze.py。
Command
cat > analyze.py << 'EOF'
from collections import defaultdict
def load_sales(path: str) -> list[dict]:
"""读取 CSV,返回 [{'product': ..., 'price': ..., 'quantity': ...}, ...]"""
rows = []
with open(path, "r", encoding="utf-8") as f:
header = f.readline().strip().split(",")
for line in f:
values = line.strip().split(",")
row = dict(zip(header, values))
row["price"] = float(row["price"])
row["quantity"] = int(row["quantity"])
rows.append(row)
return rows
def summarize(rows: list[dict]) -> dict:
"""按产品汇总:总销售额、总销量、平均价"""
summary = defaultdict(lambda: {"qty": 0, "revenue": 0.0})
for r in rows:
summary[r["product"]]["qty"] += r["quantity"]
summary[r["product"]]["revenue"] += r["price"] * r["quantity"]
return {
product: {
"qty": data["qty"],
"revenue": round(data["revenue"], 2),
"avg_price": round(data["revenue"] / data["qty"], 2),
}
for product, data in summary.items()
}
def save_report(summary: dict, path: str) -> None:
"""把报告写回文件"""
with open(path, "w", encoding="utf-8") as f:
f.write("product,quantity,revenue,avg_price\n")
for product, data in summary.items():
f.write(f"{product},{data['qty']},{data['revenue']},{data['avg_price']}\n")
def main():
try:
rows = load_sales("sales.csv")
report = summarize(rows)
save_report(report, "report.csv")
print(f"✅ 分析完成,共 {len(report)} 个产品,报告已写入 report.csv")
for product, data in report.items():
print(f" - {product}: 销量 {data['qty']}, 销售额 {data['revenue']}, 均价 {data['avg_price']}")
except FileNotFoundError:
print("❌ 找不到 sales.csv,请先准备数据文件")
if __name__ == "__main__":
main()
EOF
python3 analyze.py
Output
✅ 分析完成,共 3 个产品,报告已写入 report.csv
- 苹果: 销量 150, 销售额 825.0, 均价 5.5
- 香蕉: 销量 350, 销售额 1120.0, 均价 3.2
- 橙子: 销量 80, 销售额 384.0, 均价 4.8
Narration
看,这个 50 行的脚本用到了我们学过的所有东西: 文件 I/O——
with open(...)读写 CSV; 数据结构——列表存原始行、字典存单行、嵌套字典存汇总; 函数与模块——load_sales / summarize / save_report / main四个函数各司其职; 异常处理——try / except FileNotFoundError兜底; 列表推导式与 f-string——把字典优雅地转成字符串。defaultdict是标准库的小神器——你不用先判断 key 存不存在,第一次访问它会自动创建默认值。if __name__ == "__main__":的意思是:只有直接运行这个文件时才执行 main,被别人 import 时不执行——这是写可复用模块的标准姿势。
Demo 5.3 · 验证报告文件
Screen
看一眼生成的文件。
Command
cat report.csv
Output
product,quantity,revenue,avg_price
苹果,150,825.0,5.5
香蕉,350,1120.0,3.2
橙子,80,384.0,4.8
Narration
文件写出来了,结构和原始数据对齐,可以直接用 Excel 打开,或者喂给别的程序继续处理。 这个项目虽然小,但已经是一个真实可用的迷你工具——你把它换成公司真实的销售数据、客户日志、考试成绩,立刻就能跑。
课程收尾(9:40 – 10:00)
我们学到了什么
我们从一行 print("Hello, Python!") 开始,走到了写一个完整的 CSV 数据分析工具。
中间我们掌握了:
- 第一章:用
python3 文件名跑 Python,理解"写了就能跑"的开发循环; - 第二章:四大数据结构——列表、字典、集合、元组,加上列表推导式;
- 第三章:用
def写函数、用import用别人的代码、用模块组织自己的代码; - 第四章:用
with open安全读写文件,用try/except兜住意外。
你现在能做什么
你不再只是"读懂 Python 的人",而是能写出能跑、能复用、能扛住异常的小工具的人。 你可以写自动化脚本批量改文件、爬网页抓数据、做 Excel 报表、写小后台服务——这些都是 Python 真实世界的常见用法。
下一步学什么
- 数据方向:学
pandas,处理 Excel/CSV 像切菜一样; - Web 方向:学
Flask或FastAPI,半小时搭一个 HTTP 接口; - 自动化方向:继续练习文件 I/O 和字符串处理,做日常脚本;
- AI 方向:学
requests调大模型 API,把 Python 当成 AI 工具的粘合剂。
编程不是看完视频就会的——写一行,跑一行,比看十遍教程都有用。 今天的脚本和示例数据都在视频简介里,下载下来自己跑一遍、改造一遍,你就真正跨进了 Python 世界。 我们下期见。
录制备注(给后期 / 剪辑)
- 每段 Demo 的Command 块和Output 块就是字幕与画面切换的天然节点,建议每个代码块对应一次"打字 → 回车 → 出结果"的镜头切换。
- 开场 Hook 与每章结尾的"章节小结"段落用旁白纯音 + 终端光标画面,避免镜头静止。
- 实战项目章节(5.1 – 5.3)建议把
analyze.py拆成 3 个镜头分别录制,最后一段可展示用 VSCode 打开脚本的同步效果(如果教学需要)。 - 全程保持 macOS 终端深色背景 + 等宽字体(如
JetBrains Mono),分辨率 1080p,确保代码清晰可读。
实践示例
用 print('Hello, Python!') 输出第一行代码
用列表、字典、集合组织数据
定义 greet 函数并导入模块
用 with open 读写日记文件
实战:分析 CSV 销售数据生成报告
后续与前置知识
- Git 基础教程:10 分钟从零开始掌握版本控制相关
面向零基础初学者的 Git 实操教程,10 分钟演示 init、add、commit、push、pull 等核心命令,覆盖身份配置、仓库初始化、暂存与提交、历史查看、分支合并、冲突解决、远程 GitHub 推送与克隆及最佳实践。
- JavaScript 演示教程:先看懂运行,再加入 TypeScript相关
面向初学者的 JavaScript 与 TypeScript 入门教程,从浏览器 DOM 操作与函数数据处理入手,逐步引入 TypeScript 类型检查,并完成价格计算器从 JavaScript 到 TypeScript 的迁移。
- Node.js 演示教程:从“这东西跟我有关系?”到写完一个全栈应用相关
10 分钟 Node.js 实操教程,从识别电脑上已存在的 Node.js 开始,对比 npm 与 pnpm 的安装速度差异,使用内置 http 模块在 30 秒内启动一个 Web 服务器,再进阶用 pnpm + Express 在 60 行内完成一个支持增删改查的 Todo API,并演示 --watch、EADDRINUSE 报错处理以及 async/await 异步写法三个新手常见坑。
- 技术学习心法演示教程前置
五分钟技术学习心法演示:强调盯住问题而非版本号、学习前问三句话、将记忆外包给工具、与 AI 分工,并鼓励每日记笔记建立知识网络,从而不再惧怕新技术。
- IDE 演示教程:从毛坯房到编程超能力相关
面向初学者的 IDE 实操教程,10分钟演示 VS Code 从默认配置到高效开发环境的调教,涵盖 IDE 核心概念(智能补全与语言服务器)、按语言选择 IDE 与安装扩展、个性化 settings.json 配置、安装 GitLens 与 GitHub Copilot 等实用插件,以及团队级 .vscode 配置实战,实现效率提升。
引用此知识点
- FastAPI 接口开发 演示教程:从 Hello World 到一个完整 CRUD API前置
本文通过十个演示和最终实战,使用 FastAPI 官方教程风格,从三行代码的 Hello World 开始,逐步讲解路径参数、查询参数、请求体、Pydantic 校验、自动文档、异常处理、枚举类型、PUT/DELETE,并最终实现一个基于内存字典的完整 CRUD API,全程使用 TestClient 测试,无需启动服务器。
- 数据可视化双雄 演示教程:用 matplotlib 与 seaborn,把企鹅和小费数据画明白前置
本教程是一套跟着屏幕敲的演示脚本,使用 matplotlib 和 seaborn 完成数据可视化。从绘制正弦曲线开始,逐步讲解 Figure 与 Axes、散点图、直方图、柱状图、箱线图、热力图、子图、样式美化,并对比两个库的差异,最后通过企鹅数据集构建四宫格仪表盘,适合有一定 Python 基础的学习者快速掌握统计图表绘制。
- NumPy 数组计算 演示教程:从 0 到像素图像,一行数组玩转数值计算前置
本教程沿 NumPy 官方 quickstart 思路,通过 10 个演示从创建数组开始,覆盖索引切片、布尔掩码、广播、聚合、通用函数、随机数、线性代数与拼接,最后实战将二维数组作为像素图像进行阈值二值化并打印点阵,突出向量化计算和数组操作核心技巧。
- 数据分析双引擎 演示教程:同一份泰坦尼克数据,pandas 与 polars 各写一遍前置
使用泰坦尼克乘客数据集,通过 pandas 演示数据读取、筛选、分组聚合、缺失值处理、合并、时间序列等核心数据分析操作,并用 polars 实现相同任务进行对比,展示两种库的 API 差异与各自的性能特点,帮助学习者根据场景选择合适的工具。
- Python 工具库导论:先看懂地图,再开始动手前置
本文是 Python 数据科学工具库的先导篇,介绍 requests、numpy、pandas/polars、matplotlib/seaborn、scikit-learn、fastapi 六个常用工具的能力边界与适用场景,并阐述 DIKW 数据生命阶梯及“别试图全部了解、别和 AI 比敲代码、记不住别难为自己”等学习心态,为后续实操课程提供地图。
- HTTP 请求库 Requests 演示教程:从一次 GET 到稳健的下载客户端前置
本文通过 httpbin.org 实操演示 Python requests 库的 GET、POST、PUT、查询参数、请求头、状态码与异常、超时、会话 Session 和 HTTP 基本认证,最后编写一个带会话与超时的稳健客户端下载 pandas 官方泰坦尼克数据集。
- Scikit-learn 机器学习 演示教程:同一套 fit/predict,跑通分类、回归、聚类前置
本教程通过 scikit-learn 官方数据集,实操演示分类、回归、聚类任务,覆盖标准化、管道、交叉验证、网格搜索等常用技能,并最终构建完整建模流水线。
- AI 怎么理解一段文字?前置
本文从中文分词入手,讲解如何用 jieba 和 TF-IDF 把文字转成数字向量,并用朴素贝叶斯构建中文评论情绪分类器,梳理自然语言处理的“分词+向量化+分类”主线,适合初学者理解 AI 如何读懂文字。
- 人工智能是什么?前置
从人工智能的大目标出发,理清机器学习与深度学习的包含关系,并通过奶茶店推荐案例对比规则程序和基于数据训练的模型,说明 AI 的本质是从数据中学习而非写条件判断。
- 机器学习是怎么工作的?前置
从监督学习核心概念出发,讲解特征、标签、数据集,通过外卖迟到预测示例,使用 scikit-learn 决策树模型演示训练、预测与测试集评估,强调特征选择和数据质量,适合入门理解机器学习基本流程。
- 机器学习如何不断降低错误?前置
从预测奶茶价格出发,介绍机器学习中的回归任务,讲解线性回归、均方误差损失函数和梯度下降算法,并通过手写梯度下降和 scikit-learn 实操演示模型如何迭代降低误差。
- 人工智能需要哪些数学?前置
从向量、矩阵、概率统计到余弦相似度,介绍 AI 数学基础,并通过 NumPy 和 matplotlib 实操计算兴趣匹配。
- 神经网络究竟是什么?前置
用一种出门决策的类比,深入浅出地讲解人工神经元、权重、偏置和激活函数,手写一个判断是否适合出门的神经元,并介绍神经网络的基本分层计算过程。
- 命令行演示教程:10 分钟从图形界面走向键盘自由前置
面向零基础初学者的命令行实操教程,10 分钟从打开终端开始,讲解 Shell、Terminal、PATH 核心概念,演示文件系统操作、管道重定向与文本处理,并编写 Shell 脚本完成日志分析报告生成器。
- 数据结构演示教程:按 8 类结构建立全景图前置
10 分钟数据结构全景教程,按 8 类结构(基础存储、线性 ADT、树、Hash、图、集合维护、概率/高级索引、组合型工程结构)梳理数组、链表、栈、队列、堆、哈希表、布隆过滤器、跳表、LRU 缓存等常见数据结构,强调正确分类与典型应用场景。
- 文档数据库入门:MongoDB 与 Couchbase前置
本教程系统讲解文档数据库核心概念,以 MongoDB 和 Couchbase 为代表,涵盖数据模型、CRUD 操作、查询与聚合、索引、副本集、分片、事务、多模型能力、选型对比及 Python 接入方法,帮助建立文档数据库全景认知。
- 图数据库入门:Neo4j相关
本文系统讲解图数据库核心概念,以 Neo4j 为代表,涵盖节点、边、路径的数据模型,Cypher 图查询语言,多跳遍历与最短路径,社交网络、知识图谱、风控、推荐等典型场景,对比关系型数据库的 JOIN 查询,并演示使用 Python 驱动连接 Neo4j。
- 键值数据库入门:Redis 与 DynamoDB相关
本教程系统讲解键值数据库核心概念,以 Redis 和 DynamoDB 为代表,对比内存与云托管两种形态,涵盖 Redis 五种数据结构、过期持久化高可用、经典场景,DynamoDB 数据模型、主键设计、CRUD、二级索引、容量一致性、单表设计,并通过 Python 示例连接两者,最后给出选型建议与练习。
- 分析型数据库入门:ClickHouse、DuckDB、Snowflake、BigQuery前置
本教程系统讲解分析型数据库(OLAP)核心概念,以 ClickHouse、DuckDB、Snowflake、BigQuery 为代表,涵盖列式存储、向量化执行、存算分离与无服务器架构,对比四者选型,并演示 Python 连接与适用场景,帮助快速建立分析型数据库全景认知。
- 搜索数据库入门:Elasticsearch 与 OpenSearch前置
本教程系统讲解搜索数据库核心概念,以 Elasticsearch 与 OpenSearch 为代表,涵盖倒排索引、集群与索引/分片/副本数据模型、REST API 全文搜索、分词与 BM25 相关性排序、聚合分析、两者对比及 Python 接入方法,帮助建立搜索数据库全景认知。
- SQL 入门:从一张表看懂数据库前置
本文从一张表入手,系统讲解 SQL 数据库核心概念与操作,涵盖建库查数据、列记录主键、约束索引、DDL/DML/DQL/DCL/TCL 五类 SQL 语言、SELECT 聚合分组排序、JOIN 多表拼接、五大范式与反范式、事务与 ACID、视图索引权限、SQLite/PostgreSQL/MySQL 对比、Python 连接数据库、ORM 映射以及 DBeaver 图形化管理,适合快速建立 SQL 全景。
- 时序数据库入门:InfluxDB 与 TimescaleDB相关
本文系统讲解时序数据库核心概念,以 InfluxDB 和 TimescaleDB 为代表,涵盖数据模型、Line Protocol 与 Flux/InfluxQL 查询、保留策略与降采样、超表与连续聚合/压缩、两者对比及 Python 接入方法,帮助建立时序数据库全景认知。
- 宽列数据库入门:Cassandra 与 ScyllaDB相关
本教程系统讲解宽列数据库核心概念,以 Cassandra 和 ScyllaDB 为代表,涵盖数据模型(分区键+列族)、CQL 与 CRUD、无主架构与可调一致性、LSM 树与建模、ScyllaDB 的 Shard-per-core 架构、两者对比、Python 连接及适用场景,帮助快速建立宽列数据库全景认知。