Skip to content
← 返回代码评审与协作流程列表
代码评审与协作流程完整实践与解答

代码评审与协作流程:完整实践与解答 ​

需能阅读 Python 的列表、条件和除法。空列表评审案例同时提供原实现、候选修复和输入表:先追踪 average([]),再检查 [0] 是否仍返回 0.0,最后把触发条件、修改与复核写成意见。无需评审平台账号。 示例未在本轮执行;本页完整源码与README列出输入、阅读顺序和预期。

代码审查 完整补丁包 ​

代码审查完整补丁包包含原实现、候选修复、输入案例和审查意见。示例未执行;零第三方依赖,阅读者可以静态追踪空列表时两份函数的行为差异。

代码审查 空列表练习 ​

题目:average([])除以零如何写可执行的反馈?

参考答案

给出空列表输入、ZeroDivisionError及约定应返回None;指出候选修复只能处理空输入,不能据此声称支持字符串或非有限数字。

代码审查 反馈闭环 ​

代码审查反馈闭环记录问题、作者回应、修复位置和复核结果。撤销一条错误意见应说明新证据;清理练习目录不修改真实PR,不把本地Markdown意见自动发布到外部系统。

完整源码、配置与输入 ​

下列文件与仓库同源,包含完整实现和输入;不是运行证明。部分练习只需人工阅读配置,不强制构造模拟器。

before.py ​

python
def average(values):
    return sum(values) / len(values)

after.py ​

python
def average(values):
    if not values:
        return None
    return sum(values) / len(values)

cases.json ​

json
[{"input": [], "expected": null}, {"input": [2, 4], "expected": 3.0}, {"input": [0], "expected": 0.0}]

review.md ​

markdown
# Review of a local candidate (not an external PR)
Contract: list of finite numbers; return arithmetic mean, or None for an empty list.
Finding: before.py divides by len([]), causing ZeroDivisionError for empty input.
Fix: after.py handles empty list before division. [0] is a nonempty list, so
its mean remains 0.0; the guard must not inspect sum(values) for truthiness.
Static trace: [] -> None; [2,4] -> 6/2; [0] -> 0/1.
Not executed. Neither implementation validates element types or finiteness.
Review status: candidate addresses the defined empty-list case only.

requirements.txt ​

text
# Python 3.11+ standard library only. No review service or account.

项目README与完整依赖 ​

README提供前置、完整自跑或阅读方式、预期、失败案例与恢复清理。本轮没有执行任何示例、产品CLI、模型或外部API。

markdown
# 代码评审与协作流程:完整教学包

示例未执行。全部输入为教学虚构资料,不能用于真实账号、生产数据或外部系统。

## 前置与依赖

Python3.11以上语法阅读即可,不需要GitHub或Jira账号。

## 文件与输入

- `before.py`:本包完整文件。
- `after.py`:本包完整文件。
- `cases.json`:本包完整文件。
- `review.md`:本包完整文件。
- `requirements.txt`:本包完整文件。

## 读者将来自跑或阅读

复制本包所有文件到独立目录,在该目录作为当前工作目录。以下是读者自用资料,本轮禁止执行。

```text
只阅读before.py、after.py、cases.json与review.md,不执行函数。
```

## 正常预期

静态推导[]在before产生ZeroDivisionError而after返回None;[2,4]平均数3.0;[0]平均数0.0。

## 失败案例与恢复

把空列表判断改成if not sum(values)会错误处理[0];非数字和非有限值仍在本契约之外。

## 清理及能力边界

意见是本地Markdown,不外发;清理复制目录不会影响真实PR。

## 来源

- [官方依据](https://google.github.io/eng-practices/review/reviewer/looking-for.html)(2026-10-17资料核对;不是运行证明)

依据与适用范围 ​

本课完成的是列明任务的理论与静态资料,不代表产品全部能力或三平台运行通过。历史文档保留旧URL;涉及账号、版本、价格与界面位置时,以对应官方资料及实际授权环境为准。

继续阅读