上一课我们搞明白了一件事:算法快不快,看复杂度。同样是找最大数,O(n) 的做法一眨眼,O(n²) 的做法要跑半天。但这里藏着一个我们上节课没细说的问题——数据本身是怎么存的?想象你要在一本字典里查一个字。字典有两种编法:编法一:所有字按拼音顺序,一页挨一页排好。编法二:字是散的,每个字下面挂张小纸条,写着"下一个字在第几页"。同样是"查字典",这两种编法,查起来的速度完全不一样。数据结构,研 …

时长:大概 1 小时(讲 40 分钟 + 动手 20 分钟)门槛:会一点 Python 基础(会写循环和函数就够)目标:搞懂"算法"到底是个啥,学会用「复杂度」判断一个做法是快是慢一、先把"算法"这层窗户纸捅破很多人一听"算法"两个字,脑子里浮现的是:面试题、大厂高薪、天书、劝退。其实算法一点都不玄乎,它的定义朴素到你会觉得"就这?":算法,就是解决问题的一系列步骤。对,就这么简单。你今天早上 …

本课属于 第一阶段 · 走进操作系统(第 1~5 课)。上一课我们说:操作系统是所有程序脚下的地基。这一课,我们把镜头拉到最早的那个瞬间——你按下电源键,到屏幕上蹦出 login: 提示符,中间到底发生了什么。这是一场惊险的接力赛。从一个"黑屏"说起你现在做一个动作:按下电脑的电源键。那一瞬间,屏幕还是黑的,但机器内部已经忙疯了。如果你能把这一两秒钟放慢一万倍,你会看到一场配合严丝合缝的接力赛 …

开篇第一课,我们不写代码,先搞清楚一件最基础、也最容易被忽略的事:你每天开机就看到的那个东西,到底是什么。从一个最日常的动作说起你现在要做一件事:在电脑上新建一个文件夹,把一个文件拖进去。你觉得这太简单了,鼠标点两下就完事。但请你停下来想一想——就在你拖动鼠标的那半秒钟里,电脑内部发生了多少事情:你的鼠标移动了,操作系统要时刻跟踪它的坐标,把它画成屏幕上的光标;你按下左键,操作系统要判断"你点 …

这是 Python 系列的收官之战。前面 13 课,每一课你都"学会了一个零件"。这一课,我们要把这些零件组装成一台能转的机器:一个真正能用的命令行小工具。我们的目标:写一个 待办事项(Todo)管理器。它能把任务存到文件里,随时增、删、查,下次打开程序数据还在。为什么选"待办"?因为它几乎用遍了前 13 课的所有知识点,代码又不至于太长,是最佳的"毕业作品"。一、先想清楚:程序要能做什么?动 …

到这里,你的程序还都是"单机版"——数据要么写死在代码里,要么读本地文件。但真正有用的程序,几乎都要联网:查天气、刷新闻、调 AI、发消息……这一课我们学会三件事:用 requests 库,让 Python 像浏览器一样发请求、拿数据。认识 JSON——网络上数据的通用"普通话"。调一个真实 API,并学会限流与重试,写得像个老手。学完这一课,你就明白"AI Agent 调工具"的底层逻辑了— …

前面 11 课,我们玩的都是"一个数、一行字、一个列表"这种小数据。但真实世界的数据,动辄几万行、几十列——比如一张销售表、一份股票行情、一坨传感器读数。这时候光靠 for 循环慢慢算,又慢又累。这一课,我们请出数据科学的两大镇宅神器:numpy:用"数组"批量做数值运算,快得像作弊。pandas:用"DataFrame"(表格)管理、清洗、分析数据,像 Excel 一样顺手,但强一万倍。学完 …

基础语法你已经学完了。这一课我们点几个"高手技能点"——它们不是必须的,但掌握后你会:看懂别人代码、写出更简洁优雅的代码。核心三件套:生成器/迭代器、装饰器、函数式工具(map/filter/推导式)。一、迭代器:能被"挨个取出"的东西我们早就用过迭代了——for 循环能遍历列表、字典、集合、字符串,因为它们都是可迭代对象。for x in [1, 2, 3]: # 列表可迭代 …

前面我们写的函数,都是"一堆散装的动作"。但真实世界不是这么组织的——真实世界里是一个个对象:一只猫、一辆车、一个账户。对象有自己的数据(猫的颜色、车的速度),也有自己的行为(猫会叫、车会跑)。面向对象编程(OOP),就是让代码也用这种"对象"的方式组织。这是从"写脚本"到"写程序"的分水岭。一、类(class):对象的"图纸"class 是创建对象的模板,就像"猫"这个物种的图纸。先定义图纸 …

到目前为止,我们的程序都假设一切顺利。可现实不是:文件可能不存在、用户可能输错、网络可能断、除法的分母可能是 0。程序一遇到这些就崩溃,体验极差。这一课,我们学会两件事:让程序优雅地处理错误(不崩),以及出错后快速定位问题(调试)。一、先认识几种常见报错报错不可怕,看懂报错信息是关键。几种最常见的:# 1. 名字打错了 print(x) # NameError: …