Python Task04 · Variables & Functions
datawhale AI 共学命名、赋值、作用域、return、函数组合。
datawhalechina/learn-python-the-smart-way-v2: 聪明办法学Python,简明且系统的 Python 入门教程第二版。
datawhale AI 共学
命名、赋值、作用域、
return
、函数组合
1 · 变量(Variable)
概念 | 个人理解 |
---|---|
本质 | 变量是 指针 / 标签,指向内存中一段数据,而非一个“盒子”。更换赋值只是在同一名字下重新绑定对象。 |
赋值 | 单次 = 、就地运算 += 、链式 a = b = 0 、解包 x, y = y, x (原子交换)。 |
命名规则 | 首字符字母/下划线;区分大小写;避免保留字;可读性优先。PEP 8 推荐 snake_case 。 |
易错点 | 将数值 0 / 空串 "" 当作 “空”,应以 None 表示“无值”;布尔类型继承自 int → True == 1 。 |
x = 5
x += 2 # 7
x, y = y, x # 变量交换惯用法
2 · 函数(Function)
2.1 结构
def name(params: list) -> ReturnType: # header / interface
"""docstring: what-why‐how""" # optional, 强烈建议写
# body / implementation
return result
-
Header:声明名称 + 参数;冒号是“进院门”标记。
-
Body:统一缩进 4 空格;
return
是输出而非打印。无显式return
默认返回None
。 -
调用:严格匹配参数个数(除非使用可变参数或默认值,后续章节再谈)。
2.2 print
vs return
情景 | 用 print |
用 return |
---|---|---|
调试 / 日志 | ✅ | ❌ |
作为数据管道的一环 | ❌ | ✅ |
先用
return
保持函数纯粹;需要可视化时在外层调用处打印。方便单元测试与复用。
2.3 多返回值
Python 通过 元组打包 / 解包 实现:
def stats(a, b):
return a+b, abs(a-b)
s, diff = stats(4, 9)
3 · 表达式 vs 语句
分类 | 能否打印 | 例子 |
---|---|---|
表达式 (expression) | ✅ | 2+3 , "hi".upper() , func() |
语句 (statement) | ❌ | def f(): , if x>0: , x = 1 |
记忆:值可 print,动作不可 print。
4 · 作用域(Scope)与可见性
4.1 LEGB 原则
Local → Enclosing (嵌套函数) → Global → Built-in,自里向外查找。
g = 100 # global
def f(x):
local = x # local
return local + g
4.2 避免滥用 global
-
全局变量破坏可预测性;仅在 配置常量 或 缓存 场景少量使用,并配合只读约定 /
typing.Final
-
如果确需写全局显式
global name
请谨慎
5 · 函数组合与 Helper Function
-
组合:先执行内层 → 外层,阅读时由里而外解析。
-
Helper:抽出重复逻辑 (
ones_digit
,normalize
, …),提升可读性 & 可测试性。 -
调试建议:手绘调用栈或用 pythontutor.com 可视化,直观理解值如何流动。
6 · 常见坑
误区 | 规避策略 |
---|---|
把 print 当返回值用 |
编写单元测试时立即暴露——测试不能依赖控制台输出 |
默认可变对象作参数 | 使用 None + 在函数内实例化新对象 |
忽视浮点比较 | 用 math.isclose() / decimal.Decimal |
过度全局状态 | 设计纯函数;必要全局用只读常量 + 类型检查 |
7 · 小结 Checklist
-
变量是名称到对象的绑定;赋值即重绑定。
-
函数 = 可复用的语句块,
return
把数据交还给调用者。 -
理解表达式 vs 语句区别,调试时只打印表达式。
-
熟悉 LEGB 搜索链,少用
global
。 -
借助 helper / composition 管理复杂度。

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)