▤书架 ← 返回索引
▶目录

阶段 02 讲义

数学 11h:高数 · 函数极限与连续
编程 9h:运算符与流程入门


第一部分 · 数学

1 函数极限:从数列到函数

数列极限看的是 $n \to \infty$。函数极限看的是 $x$ 趋近某个值。

记号:$\lim_{x\to x_0} f(x) = A$

直观:$x$ 靠近 $x_0$ 时,$f(x)$ 靠近 $A$。

⚠️ 关键点:$x \to x_0$ 时,我们不关心 $f(x_0)$ 等于什么,甚至 $f$ 在 $x_0$ 处可以没有定义。
关心的是"靠近的过程中"的趋势。

例子:$\lim_{x\to1}\frac{x^2-1}{x-1}$,在 $x=1$ 处无定义(分母为 0),
但 $\frac{x^2-1}{x-1} = x+1$(当 $x \ne 1$),所以极限是 2。

2 ε-δ 定义 ⭐

$\lim_{x\to x_0} f(x) = A$ 的定义:

对任意 $\varepsilon > 0$,存在 $\delta > 0$,使得当

$$0 < |x - x_0| < \delta$$

时,恒有

$$|f(x) - A| < \varepsilon$$

逐字解读:

符号 含义
$0 < \lvert x-x_0\rvert$ $x$ 不等于 $x_0$(挖掉这一点)
$< \delta$ 但 $x$ 要足够靠近 $x_0$
$\lvert f(x)-A\rvert < \varepsilon$ 对应的函数值要足够靠近 $A$

和 ε-N 的对比:

数列 函数
自变量趋近 $n \to \infty$(只有一边) $x \to x_0$(左右两边)
控制自变量的 $N$($n > N$) $\delta$($\lvert x-x_0\rvert < \delta$)

逻辑结构完全一样:挑战者给 ε,你回一个 δ(或 N)。

2.1 完整证明例子

证明 $\lim_{x\to 2}(3x-1) = 5$

分析(做题先分析,再写证明):

$$|f(x) - A| = |(3x-1) - 5| = |3x - 6| = 3|x-2|$$

要让 $3|x-2| < \varepsilon$,只需 $|x-2| < \frac{\varepsilon}{3}$。

证明:

任取 $\varepsilon > 0$,取 $\delta = \frac{\varepsilon}{3}$。

当 $0 < |x-2| < \delta$ 时:

$$|(3x-1)-5| = 3|x-2| < 3\delta = 3 \cdot \frac{\varepsilon}{3} = \varepsilon \quad \checkmark$$

∎

套路:把 $|f(x)-A|$ 化成"常数 × |x-x_0|"的形式,然后让这个常数 × δ ≤ ε。

3 左右极限

左极限:$x$ 从左边趋近,记 $\lim_{x\to x_0^-} f(x)$
右极限:$x$ 从右边趋近,记 $\lim_{x\to x_0^+} f(x)$

重要定理:$\lim_{x\to x_0} f(x)$ 存在 ⟺ 左右极限都存在且相等

用于判断分段函数:

$$f(x) = \begin{cases} x+1, & x < 0 \\ x^2, & x \ge 0 \end{cases}$$

4 两个重要极限 ⭐

这两个必须背下来,考试和后续都要用:

$$\lim_{x\to 0}\frac{\sin x}{x} = 1$$

$$\lim_{x\to\infty}\left(1+\frac{1}{x}\right)^x = e$$

第二个的变形(更常考):

$$\lim_{x\to 0}(1+x)^{\frac{1}{x}} = e$$

用法示例:

$$\lim_{x\to0}\frac{\sin 3x}{x} = \lim_{x\to0}\frac{\sin 3x}{3x} \cdot 3 = 1 \cdot 3 = 3$$

技巧:凑成 $\frac{\sin \Box}{\Box}$ 的形式,其中 $\Box \to 0$。

5 无穷小与无穷大

无穷小:极限为 0 的量。
无穷大:绝对值无限增大的量(注意:无穷大不是数)。

无穷小的性质:
- 有限个无穷小之和仍是无穷小
- 有界函数 × 无穷小 = 无穷小 ← 很有用
- $\lim f(x) = A$ ⟺ $f(x) = A + \alpha$,其中 $\alpha$ 是无穷小

无穷小的比较($\alpha, \beta$ 都趋于 0):

关系 条件 记号
高阶 $\lim\frac{\alpha}{\beta}=0$ $\alpha = o(\beta)$
同阶 $\lim\frac{\alpha}{\beta}=c \ne 0$ 无
等价 $\lim\frac{\alpha}{\beta}=1$ $\alpha \sim \beta$

常用等价无穷小(当 $x \to 0$),这个表要背。

$$\sin x \sim x, \quad \tan x \sim x, \quad \arcsin x \sim x$$
$$1 - \cos x \sim \frac{x^2}{2}, \quad \ln(1+x) \sim x, \quad e^x - 1 \sim x$$

💡 用法:在乘除中可以直接替换,能极大简化计算。
⚠️ 但在加减中不能随便换(可能出错)!

6 连续性

定义:$f$ 在 $x_0$ 连续 ⟺ $\lim_{x\to x_0}f(x) = f(x_0)$

即:极限存在 + 等于函数值。

三个条件:
1. $f(x_0)$ 有定义
2. $\lim_{x\to x_0}f(x)$ 存在
3. 两者相等

间断点分类:

类型 特征
可去间断点 左右极限存在且相等,但不等于函数值(或函数值不存在)
跳跃间断点 左右极限存在但不相等
无穷间断点 至少一侧趋于无穷
振荡间断点 如 $\sin\frac1x$ 在 $x=0$

前两类合称第一类间断点,后两类是第二类。

连续函数的性质:
- 连续函数的和差积商仍连续(分母不为 0)
- 初等函数在其定义域内连续
- 闭区间上连续函数:有界、有最大最小值、介值定理

6.1 介值定理与零点存在定理 ⭐

介值定理:$f$ 在 $[a,b]$ 上连续,则 $f$ 能取到 $f(a)$ 和 $f(b)$ 之间的一切值。

它的"实用版"是零点存在定理:

若 $f$ 在 $[a,b]$ 上连续,且 $f(a)$ 与 $f(b)$ 异号,
则在 $(a,b)$ 内至少存在一点 $\xi$,使 $f(\xi)=0$。

直觉:一笔画一条连续的线,从 $x$ 轴下方画到上方,必然穿过 $x$ 轴。绕不过去。

⚠️ "连续"这个前提不能少:$f$ 在 $[-1,1]$ 上若在 0 处断开(比如 $f(x)=1/x$,
在 0 无定义),就可以"跳"过去而不穿过。

为什么这个定理重要:它是二分法求根的理论基础。

不知道根在哪,但知道"一定存在",那就把区间对半砍,看根在哪半边,反复进行。
这就是二分法:它不靠聪明,靠每次都能排除一半。

手算体验一下:求 $\sqrt2$ 的近似值,即求 $f(x)=x^2-2$ 的零点。
$f(1)=-1<0$,$f(2)=2>0$ → 根在 $(1,2)$
取中点 1.5:$f(1.5)=0.25>0$ → 根在 $(1,1.5)$
取中点 1.25:$f(1.25)=-0.4375<0$ → 根在 $(1.25,1.5)$
取中点 1.375:$f(1.375)=-0.109<0$ → 根在 $(1.375,1.5)$
……
每砍一次,区间长度减半。$\sqrt2=1.41421\dots$,就在这一串区间里。

这个思路你写循环时(阶段 3)就能让计算机替你砍,这是你的第一个"数值算法"。


7 数学作业 S2

第 8 题参考代码:

import numpy as np

for x in [0.1, 0.01, 0.001, 0.0001]:
    print(f"x={x:<8} sin(x)/x = {np.sin(x)/x:.10f}")

# 注意:别直接算 x=0!那会是 0/0

你会看到数值越来越接近 1,但永远不等于 1。
⚠️ x 越小,浮点误差越大。这也是数值计算的一个真实陷阱。

补充:可以试试直接算 np.sin(0)/0,看看会发生什么(会有警告,结果是 nan)。


第二部分 · 编程

8 算术运算符

运算符 含义 例子 结果
+ 加 7 + 2 9
- 减 7 - 2 5
* 乘 7 * 2 14
/ 除(总是浮点) 7 / 2 3.5
// 整除(向下取整) 7 // 2 3
% 取余 7 % 2 1
** 幂 7 ** 2 49

⚠️ 三个最容易搞错的:
- / 永远返回浮点数,4 / 2 得到 2.0 不是 2
- // 是向下取整,负数时要注意:-7 // 2 得到 -4(不是 -3)
- % 的结果符号跟除数走:-7 % 2 得到 1

print(7 / 2)      # 3.5
print(7 // 2)     # 3
print(-7 // 2)    # -4   ← 不是 -3!
print(-7 % 2)     # 1
print(2 ** 10)    # 1024

整除和取余的经典用途是数位拆分。

num = 365
print(num // 100)      # 3   百位
print(num % 10)        # 5   个位
print((num // 10) % 10)  # 6   十位

9 比较运算符

运算符 含义
== 等于
!= 不等于
> < 大于 / 小于
>= <= 大于等于 / 小于等于

结果永远是布尔值(True / False):

print(5 > 3)      # True
print(5 == 5.0)   # True    (值相等)
print("a" == "A") # False   (区分大小写)

⚠️ == 和 = 完全不同:
- = 是赋值(贴标签)
- == 是比较(问"相等吗")

这是初学者最常见的笔误。

10 逻辑运算符

运算符 含义 例子
and 与(都真才真) True and False → False
or 或(有真就真) True or False → True
not 非(取反) not True → False

短路求值(重要):

# and:左边为假,右边不计算
result = False and (1/0)    # 不会报错!因为左边已经是 False

# or:左边为真,右边不计算
result = True or (1/0)      # 也不会报错

实用技巧:x = value or default,如果 value 是假的(空、0、None),就用默认值。

11 条件语句

score = 85

if score >= 90:
    print("A")
elif score >= 80:
    print("B")
elif score >= 70:
    print("C")
else:
    print("D")

结构说明:
- if 必须
- elif(else if)可有多个
- else 可选,放最后
- 每个条件后面有冒号 :
- 缩进表示"属于哪个分支"

嵌套:

age = 20
has_id = True

if age >= 18:
    if has_id:
        print("可以进入")
    else:
        print("需要证件")
else:
    print("未成年")

用 and 简化(更清晰):

if age >= 18 and has_id:
    print("可以进入")

💡 经验:嵌套超过两层就该想办法简化了(用 and/or,或拆成函数)。

12 布尔值的"真值"

哪些东西是"假"的:

# 下面这些都会被当作 False
False
None
0
0.0
""        # 空字符串
[]        # 空列表
{}        # 空字典

其他都是 True:

if "hello":         # 非空字符串 → True
    print("真")

if []:              # 空列表 → False,这里的代码不执行
    print("不会打印")

💡 实用:判断列表非空可以写 if my_list: 而不是 if len(my_list) > 0:

13 in 运算符

print("a" in "cat")        # True    子串
print("z" in "cat")        # False
print(3 in [1, 2, 3])      # True    列表成员
print(5 not in [1, 2, 3])  # True

14 🔧 技能卡 2:自己找答案(help() 和 dir())

技能卡 1 教的是"代码错了怎么办",这张卡教的是"我忘了怎么用怎么办"。

自学最大的瓶颈不是不会,是不会的时候不知道去哪问。Python 把答案装在里面了。

14.1 help():查任何东西怎么用

help(print)
help(str)
help(str.split)      # 查字符串的某一个方法

它会打印出说明书:这个函数要什么参数、干什么、怎么用。

14.2 dir():看一个东西有哪些本事

s = "hello"
print(dir(s))
# ['capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', ...]

一长串名字就是字符串所有能用的方法。看到不认识的(比如 startswith),
就 help(s.startswith) 查一下。

print("hello.py".startswith("hello"))   # True
print("hello.py".endswith(".py"))       # True

💡 实用:想知道"字符串能不能做某件事",先 dir() 看一眼名字里有没有相关的。

14.3 三条自学的路

遇到什么 去哪
忘了某个函数怎么用 help(函数名)
想知道某类型有哪些方法 dir(对象),再 help() 细看
不确定某行为的细节 官方文档 docs.python.org/zh-cn/3/(有中文版)

⚠️ 一个坑:dir() 的输出包含以 __ 开头结尾的(如 __doc__、__class__)。
那些是 Python 内部用的,你现在不用管,看没有下划线开头的那些就行。

💡 心态:没人记得住所有方法。专业程序员也是天天查 help() 和文档。
"会查"比"记得住"重要得多。


15 🧠 这跟认知科学有什么关系

概念性内容,无法用代码验证,请对照文献。

if / elif / else ↔ 认知架构里的「产生式规则」。

认知科学里有一类理论认为,人的认知过程可以被建模成一大堆"条件 → 动作"规则。
比如 ACT-R、Soar 这些认知架构,核心机制就是:

如果 目标是解方程 且 方程是二次的
则   使用求根公式

这就是 if ... : ...。你在这一节学的条件语句,正是这些模型写出来的样子。

短路求值 ↔ 加工的"提前终止"。

False and (1/0) 不报错,因为左边为假时右边根本不计算。
认知里有没有类似现象?有研究认为某些加工会提前中止,但这个类比比较松,
我不建议你把它当结论用。举它只是想让你知道,短路是普遍的计算策略,
不是 Python 的怪癖。

布尔逻辑 ↔ 信号检测论(SDT)的 2×2 决策矩阵。

这个是扎实的。信号检测论里,每次判断有两种事实(有信号 / 无信号)和两种反应(说有 / 说无),
组合出四种结果:

实际有信号 实际无信号
报告"有" 命中 (Hit) 虚报 (False Alarm)
报告"无" 漏报 (Miss) 正确拒绝 (Correct Rejection)

这本质上就是真值表。而你把"判定标准"写成一个条件判断时,
就是在实现 SDT 里的判断标准(criterion):

# 下面是伪代码(示意结构,不能直接跑)
if 证据强度 >= 判断标准:
    报告("有信号")     # 可能是命中,也可能是虚报——取决于真相
else:
    报告("无信号")     # 可能是正确拒绝,也可能是漏报

这段对应关系是真的,你在实验心理学/认知心理学课上会正式学到 SDT。
到时候回头看这行 if,会觉得"原来我早写过"。

等价无穷小 ↔ 认知建模里的线性近似。

认知模型经常把非线性关系在小范围内近似成线性("在阈限附近,感觉强度≈刺激强度×常数"),
这正是等价无穷小做的事,在小范围内,复杂的东西可以用简单的东西代替。

⚠️ 再提醒一次:上面 SDT 那条对应关系是真的(它是实验心理学的标准内容),
但"短路求值 ↔ 提前终止"那条只是松散的类比。
数学我能保证;类比能不能用,得回到文献。


16 编程作业 S2

第 4 题参考框架(先自己写):

year = int(input("输入年份:"))

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print(f"{year} 是闰年")
else:
    print(f"{year} 不是闰年")

第 3 题提示:

height = float(input("身高(米):"))
weight = float(input("体重(公斤):"))
bmi = weight / height ** 2
print(f"你的 BMI 是 {bmi:.1f}")

if bmi < 18.5:
    print("偏瘦")
elif bmi < 24:
    print("正常")
elif bmi < 28:
    print("超重")
else:
    print("肥胖")

自测:把 bmi 手动设成 18.5、24、28 这几个边界值,看判断对不对。
边界值是 bug 高发区,这是编程的一条经验。


本阶段自评

  1. 数学:ε-δ 和 ε-N 的区别在哪?(提示:自变量的趋近方式)
  2. 数学:你会用等价无穷小简化 $\lim_{x\to0}\frac{\ln(1+x)}{x}$ 吗?
  3. 数学:零点存在定理要求什么前提?为什么连续不能少?
  4. 数学:二分法每砍一次,能保证什么?(一句话)
  5. 编程:7 // 2 和 7 % 2 分别是多少?-7 // 2 呢?
  6. 编程:if my_list: 和 if my_list != []: 有什么区别?
  7. 技能:你忘了 split 怎么用,第一件事该做什么?
  8. 连接:SDT 的"命中/虚报/漏报/正确拒绝"和真值表是什么关系?

全部答得上 → 进阶段 3。

最后更新:2026-09-26