15 分钟
Python 入门

作用域

理解局部变量和全局变量

  • 区分局部变量和全局变量
  • 理解函数内外变量的可见性
  • 了解 global 关键字

局部变量

函数内部定义的变量只能在函数内部使用。

示例代码(可运行)

全局变量

函数外面定义的变量,函数里面能直接读。

示例代码(可运行)

函数内修改全局变量

函数里直接给变量赋值,默认创建的是局部变量。要改全局变量的话,得用 global 声明。

示例代码(可运行)
💡少用 global

global 会让代码难以调试。更好的做法是用参数传入、return 返回新值。

预测输出
x = 10
def f():
    x = 20
    print(x)
f()
print(x)
找 Bug函数里写 total = total + n,Python 会把 total 当成局部变量,可你还没给它赋值就用了,直接报错。加个 global 声明 total 就行。
total = 0 def add(n): total = total + n add(5) print(total)
填空题填写空白处的代码
x = 10 def f(): x x = 20 f() print(x)
选择题

函数内直接给全局变量赋值会怎样?

选择题

函数内部定义的局部变量,在函数外面能直接访问吗?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

print 把对象交给 sys.stdout 写出,显示时默认调用对象的 __str__;在交互环境直接回显变量走的是 __repr__(更偏「给开发者看的表示」)。sep 改分隔符、end 改结尾、file 可重定向到文件。面试常追问:生产环境为什么用 logging 而不是 print?因为日志有级别、能落盘、可结构化、可统一关闭,print 只适合临时调试。

挑战任务

计数器

简单+50 XP

写一个计数器函数,每次调用就把全局的 count 加1,调用满3次后输出结果。

计数器
2 个测试用例

课后作业

函数版计算器

中等+20 XP

写 calc(a, b, op) 根据 +、-、*、/ 返回结果。

函数版计算器
1 个测试用例