第四课:Python 程序识读
入门 学考加油站 · 2026-10-21 · 阅读 4

考点清单
- 表达式求值://、%、**、/ 的结果与类型;运算符优先级
- 类型转换:int()、float()、str();"12"+"3" 与 12+3 的天壤之别
- 分支跟踪:if-elif-else 只走一条路
- 循环跟踪:range 三参数、累加/累乘模式、break 与 continue
- 列表/字典/字符串的常见操作结果
- 函数:return 与 print 的区别(经典大坑)
读程序题的方法只有一个:跟踪表。列出变量名,程序走一行、记一行,绝不靠"感觉"。下面每个题型给一道例题,都用跟踪的方式拆给你看。
题型一:表达式求值
例题:x=7,y=2,求 x//y、x%y、x**y、(x+y)/2。
- x//y = 3(整除,只取商的整数部分)
- x%y = 1(取余,7 里装 3 个 2,还剩 1)
- x**y = 49(乘方,7 的 2 次方)
- (x+y)/2 = 4.5(只要是 /,结果就是小数,哪怕除得尽)
易混点:// 和 % 是一对搭档:a//b 是商、a%b 是余,这也是判断奇偶(n%2)、取个位(n%10)的底层工具。
题型二:分支跟踪
例题:
score = 85
if score >= 90:
level = "A"
elif score >= 80:
level = "B"
elif score >= 60:
level = "C"
else:
level = "D"
print(level)
跟踪:score=85,第一个条件 85>=90 不成立;第二个 85>=80 成立,level="B",后面整条链直接结束(elif 链只走一条路,哪怕后面条件也成立)。输出 B。
题型三:循环跟踪(重头戏)
例题 1(累加):
s = 0
for i in range(1, 10, 2):
s = s + i
print(s)
range(1, 10, 2) 依次给出 1、3、5、7、9(从 1 起、不到 10、步长 2)。s 依次变 1、4、9、16、25。输出 25。
例题 2(累乘):
n = 5
f = 1
while n > 1:
f = f * n
n = n - 1
print(f)
跟踪:f 依次 5、20、60、120;n 减到 1 时停。输出 120(这就是 5 的阶乘)。认出"累加用 s=0 打底、累乘用 f=1 打底"这个模式,这类题就通杀一半。
例题 3(break 与 continue):
for i in range(1, 6):
if i == 3:
continue
print(i, end=" ")
continue 是"跳过这一轮":i=3 时跳过打印,其余照常。输出 1 2 4 5。把 continue 换成 break("整个循环停了"),输出就变成 1 2。这两个词的区别,考试百考不厌。
题型四:数据的操作结果
例题:
a = [3, 1, 2] a.append(4) a.sort() print(a) print(a[0] + a[-1])
append 把 4 加到末尾 → [3,1,2,4];sort 从小到大排序 → [1,2,3,4]。a[0]=1,a[-1]=4(倒数第一个),相加输出 5。
字符串也常考拼接:"2025" + "03" 的结果是 "202503"(字符串相加是拼接,不是算术!),"ab" * 3 是 "ababab"。
题型五:函数的返回值大坑
例题:
def add(a, b):
print(a + b)
r = add(2, 3)
print(r)
先输出 5(函数里的 print 打的)。然后——函数没有 return,所以 r 拿到的是 None,第二行输出 None。
记住:print 是"说出来给人看",return 是"把结果交回去"。函数要让外面用它的计算结果,必须 return。这一坑不踩,胜过背十个函数。
易错点提醒
1. / 的结果永远是小数(float),哪怕 6/3 也是 2.0。
2. range 含头不含尾:range(1, 5) 只有 1、2、3、4 四个数。
3. elif 链只走一条:命中一个,后面的条件再成立也不看。
4. input() 读进来的永远是字符串,要做算术先 int() 转换(Python 课第四课的老话,考试同样爱考)。
自测 10 题(先做,再点开对答案)
1. 表达式 7//2 + 7%2 的值是( )
A. 3 B. 4 C. 4.5 D. 5
2. range(2, 8) 一共产生几个整数( )
A. 5 个 B. 6 个 C. 7 个 D. 8 个
3. 运行下面程序,输出是( )
s = 0
for i in range(5):
s = s + i
print(s)
A. 10 B. 15 C. 20 D. 0
4. 表达式 "Py" * 2 + "thon" 的结果是( )
A. "Python" B. "PyPy"+"thon" C. "PyPython" D. 报错
5. 运行下面程序,循环体一共执行几次( )
n = 0
while n < 3:
n = n + 1
A. 2 次 B. 3 次 C. 4 次 D. 无限次
6. score=72 时,题型二例题中的程序(A:≥90,B:≥80,C:≥60)输出( )
A. A B. B C. C D. D
7. 运行下面程序,输出是( )
a = [1, 2, 3] a.pop() print(a)
A. [1, 2] B. [2, 3] C. [1, 2, 3] D. 3
8. 某函数内部只有 print 没有 return,调用它并把结果赋给变量,变量的值是( )
A. 0 B. 空字符串 C. None D. 报错
9. 表达式 int("12") + 3 的值是( )
A. "123" B. 15 C. "15" D. 报错
10. 运行下面程序,输出是( )
for i in range(10):
if i == 4:
break
print(i, end="")
A. 0123456789 B. 0123 C. 01234 D. 456789
参考答案(点开)
1. B(7//2=3,7%2=1,合计 4)
2. B(2、3、4、5、6、7,共 6 个)
3. A(0+1+2+3+4=10;注意 range(5) 到 4 为止)
4. C("PyPy" + "thon")
5. B(n 变为 1、2、3 后条件不成立)
6. C(72 不够 B,落进 C 档)
7. A(pop 弹出并去掉最后一个 3)
8. C
9. B(先转换成整数 12,再相加)
10. B(i=4 时 break,后面的都不打印,4 本身也不打印)
下一课预告:信息系统与网络——把高一理论那 9 课里的系统、网络、物联网按考试口径串起来。
学·教在线
小ta