单元四

第17课 全局与局部变量

作用域
任务场景:作用域
局部 vs 全局
原理图:局部 vs 全局

一、任务目标

写清函数内外变量的可见范围,避免「改了外面、里面没变」的错乱。

二、核心概念讲清楚

函数内赋值默认局部;读全局可以,改全局要 global(慎用)。

三、跟着想一遍(小例子)

演示内外同名。

易错:随意 global

正确:尽量传参与返回值

想一想:为何避免过多全局?

四、解题思路

任务:分清函数内外的变量。 先想清楚:输入是什么、处理后得到什么、屏幕上应出现什么。

本课主要用到:屏幕输出。

  1. 1明确任务「分清函数内外的变量。」:运行后你希望看到什么结果(文字、图形或计算结果)。
  2. 2用 print 把结果说出来,确认屏幕上出现预期内容。
  3. 3把可复用的一段动作做成函数,主程序里调用它。
  4. 4对照参考代码跑通后,只改一个参数,观察结果如何变化。

流程示意(可对照左侧文字)

任务:分清函数内外的…用print把结果说出来,…把可复用的一段动作做成函数…对照参考代码跑通后,只改一…

五、语句功能讲解

本课用到的 Mixly 图形块均已在前面的课讲过。请直接对照编程练习搭积木;若有遗忘,回到该积木首次出现的课页复习。

六、知识点讲解

变量像贴了名字的盒子:把数字、文字等放进去,后面用名字取用。同一数值多处要用时,改盒子里的值就能处处一起变,不必改很多处。先赋值再使用,名字要能看懂。

先弄清本课输入与输出,再进编程练习对照现象。

七、编程练习

在下方 Mixly 文本编程中载入、运行与检查(浏览器即可,不必本机安装 Python)。

作用域演示

参考代码(对照抄写到下方 Mixly)
x=10
def f():
    x=1
    print("内",x)
f()
print("外",x)

八、课堂练习

先完成两道正误判断,再做其余题目;选出后点「检查」。

  1. 判断:只抄参考代码,不看运行输出,也不改参数验证。

  2. 判断:先跑通,再对照「全局变量」改一处输入/参数,确认输出按预期变化;答错小测时读讲解。

  3. 函数内新赋值的变量默认?

  4. 更推荐?

九、本节小结

作用域让程序更可控。