-编程基础 Lecture 2 - Core Elements of Progr
-编程基础 Lecture 2 - Co
看完这组图解,你将透彻理解变量作用域、表达式与语句边界、类型系统与控制流的细节
按 空格/→ 演示下一步
全部页面点击任意一页,跳回舞台从这页播放
-编程基础 Lecture 2 - Co
看完这组图解,你将透彻理解变量作用域、表达式与语句边界、类型系统与控制流的细节
Lecture 2 Introduction
Lecture 1 我们搞懂了「程序是什么、为什么要写」——这节课钻进程序内部,看任何代码都拆不开的几个基本零件。不认识它们,后面所有高级概念都会变空中楼阁。
食材=变量, 切配顺序=控制结构, 菜谱=函数, 上桌=输出
Types of Programming Lan
上节我们把程序拆成「输入-处理-输出」三件套。但程序本身是用什么「写」出来的?从冯·诺依曼时代纸带上的孔,到今天 IDE 里高亮的 Python,工程语言其实分了好几层。
口语→通用语言;行业话→DSL;越专用越贴场景,越通用越灵活
Python Objects
上页说到 Python 是面向对象语言。这页打开黑箱:数字、字符串、函数、类本身,在 Python 里统统都是「对象」。这是它最核心、也最反直觉的设计。
身份证号=identity(唯一)、血型=type(不可改)、姓名=value(可改)
Variables and Naming
上一页我们看到 Python 里一切皆对象,但对象堆在内存里谁也找不到——得有个名字把它拽出来用。
便签(名字)可撕下贴到别的箱子(对象)上,箱子本身不变
Strings
上页我们给变量赋值时,文本总要用引号包起来——那就是字符串。它在 Python 里有一套严格而反直觉的行为规则,这一页把它讲透。
书页印好后字就固定,不能改其中一字而不重印;想改字必须重印整页,正对应 str 的不可变
Simple Scripts
学过了对象、变量、字符串这些「零件」,现在把它们组装起来——写一个能直接跑的小程序。这种程序有专门的名字:脚本。
照步骤依次执行,做完这顿饭就结束,不需要「餐厅」式的前后台
Branching Programs
前面写的脚本都是从上到下顺序跑的直线。但程序不止这一种——遇到不同情况要选路走,这就是分支。
走到第一个能出餐的窗口就停下,后面的窗口不再询问
本节要点
- ✓Python万物皆对象,类型绑定于对象而非变量
- ✓变量是标签不是盒子,多个名字可指向同一对象
- ✓字符串不可变,任何操作都返回新字符串对象
- ✓程序控制流三种形态:顺序、分支、循环
- ✓分支靠布尔表达式选路径,注意边界与短路
课后思考
先遮住答案自己思考三分钟,再对照参考答案——重点不是对错,而是思路是否走完整。
参考答案统一了「属性 + 方法」的访问语法(obj.x)。代价是每个整数都要分配对象,占内存、运算慢。C 的 int 只是裸值,没有方法——这正是 Python 对象模型的额外成本。
参考答案提示:分支判断处理条件(长度、字符类型),字符串方法完成具体检查。边界情况别漏:空串、全空格、Unicode。多个 if-elif 可提前 return 简化逻辑。
参考答案不成立。C 的 int 是裸值,没有方法、没有类型标签,数组退化为指针。想调用「方法」得自己写函数传指针——Python 对象模型的便利背后,是动态类型与内存开销的代价。