变量不是盒子,而是当前事实的名字
先区分字符串、数字、布尔值、None和字典。Observation用字典把gesture、confidence、quality和timestamp组织成一条有语义的记录。
confidence = 0.86
quality = 'GOOD' if confidence >= 0.90 else 'MISSING'常见误区:变量名不等于数据含义。还要说明Schema和单位。
程序怎样把低置信度变成未知状态(unknown),并保证错误输入不会偷偷进入驱动模块(Driver)?
0 / 6 · 逐节作答;页面刷新后重新开始。
先区分字符串、数字、布尔值、None和字典。Observation用字典把gesture、confidence、quality和timestamp组织成一条有语义的记录。
confidence = 0.86
quality = 'GOOD' if confidence >= 0.90 else 'MISSING'常见误区:变量名不等于数据含义。还要说明Schema和单位。
函数要有清楚输入、输出和失败行为。质量门只判断Observation能否成立,不负责猜拳策略,也不直接驱动设备。
def qualify(label, confidence):
if confidence < 0.90:
return None
return label常见误区:函数返回值不是动作完成证据。
None表示没有可用值,0可能是合法值;异常要在最接近来源的位置被识别并转换为明确失败语义。
if observation is None:
return {'robotGesture': 'STOP'}常见误区:0与None不能互换,旧值也不能冒充新值。
先写正常、边界和失败用例,再实现函数。确定性输入必须产生确定性输出,Trace末事件也要能检查。
assert qualify('rock', 0.86) is None
assert qualify('rock', 0.96) == 'rock'常见误区:只测正常路径无法证明失败关闭。
项目变大后应把视觉、策略、驱动和Trace拆成模块。import表达依赖方向;上层可以依赖接口,视觉模块不应反向调用Driver。
from app.vision import observe
from app.policy import decide常见误区:拆文件不等于解耦,依赖方向才是边界。
命令行参数明确输入和输出,JSON保存带版本的结构化事实。固定编码、键名和显式输出路径,才能让同一实验被测试和审计。
payload = json.loads(path.read_text(encoding='utf-8'))
assert payload['schemaVersion'] == '0.1.0'常见误区:能读JSON不代表内容可信,仍需Schema与哈希。
每一步都写下预期和实际观察;只改变一个变量,并把结论限定在当前证据范围内。
给Observation增加age_ms字段,并解释为什么timestamp与age不能互相替代。
age_ms超过500时返回unknown,不允许把旧gesture继续传下去。
覆盖新鲜、恰好500 ms、501 ms过期三种输入。
在0.86路径中核对Trace末事件仍为command.not_dispatched。
关键不是写出更多Python语法,而是让每个变量、函数和测试对应一条工程语义:未知不是0,过期不是新鲜,STOP不是执行动作。
五项资源来自官方文档、高校课程或作者开放教材。外链只在主动点击时访问;先带着本页项目问题阅读,不要求一次学完。