📖 项目简介
本系列包含 10 道 Python 编程练习题 ,围绕 自动驾驶系统的感知与决策 这一真实工程场景展开。题目由浅入深,涵盖基础仿真、数据校验、多传感器融合、多帧跟踪、车道级统计等核心模块。旨在帮助学习者:
-
巩固 Python 基础语法(函数、字典、列表、循环、条件分支)
-
培养防御性编程思维(边界处理、缺失字段、异常值)
-
掌握工业级代码的组织方式(模块化、函数拆分、结构化输出)
-
熟悉自动驾驶领域常见的业务逻辑(TTC 计算、FCW 预警、传感器融合、跟踪稳定性)
-
项目地址:Python_Exercise
🧩 题目概览
| 编号 | 题目名称 | 领域 | 核心知识点 | 难度 (华为OD) | 难度 (LeetCode) | 适用对象 |
|---|---|---|---|---|---|---|
| 1 | brake_simulate.py |
制动仿真 | 函数定义、字典操作、条件判断、边界截断、运动学公式 | 入门 | Easy | Python 初学者 |
| 2 | complete_cl_simulate.py |
闭环仿真 | while 循环、状态更新、函数复用、简单决策树 | 简单~中等 | Easy | 初级开发者 |
| 3 | fcw_decision.py |
FCW 预警决策 | 多级决策、列表字典遍历、错误处理、结构化输出 | 中等 | Easy-Medium | 中级开发者 |
| 4 | sensor_fusion.py |
传感器融合 | 加权平均、多层函数调用、字典键检查、批量处理 | 简单 | Easy | 初级开发者 |
| 5 | traffic_light_warning.py |
红绿灯预警 | 多分支决策树、单位换算、时间计算、批量处理 | 简单~中等 | Easy | 中级开发者 |
| 6 | waypoint_validity_check.py |
路径点校验 | 字典键检查、范围校验、逻辑校验、批量过滤 | 简单 | Easy | Python 初学者 |
| 7 | multi_sensor_fusion.py |
多传感器融合(扩展) | 多源数据合并、校验、来源统计、模块化设计 | 简单~中等 | Easy | 初级开发者 |
| 8 | dangerous_ttc_filter.py |
危险 TTC 过滤 | 嵌套遍历、TTC 计算、统计分组、去重逻辑 | 中等 | Easy-Medium | 中级开发者 |
| 9 | lane_level_warning.py |
车道级目标预警 | 三维嵌套遍历、按车道分组、缺失键处理、最危险车道判定 | 中等 | Easy-Medium | 中级开发者 |
| 10 | multi_frame_tracking.py |
多帧跟踪稳定性 | 跨帧聚合、按 track_id 分组、平均 TTC、排序输出 | 中等 | Easy-Medium | 中级开发者 |
说明:难度评级参照华为 OD 机试和 LeetCode 体系,侧重工程实现而非算法技巧。
🎯 题目特点
-
场景真实:所有题目均脱胎于自动驾驶系统开发中的实际子任务,如制动决策、FCW 预警、传感器数据融合、目标跟踪稳定性分析。
-
由浅入深:第 1-2 题为单步/闭环仿真,第 3-4 题引入决策和融合,第 5-8 题增加复杂条件分支和数据校验,第 9-10 题要求处理多维嵌套数据并进行聚合统计。
-
强调防御性编程:几乎每道题都明确要求处理缺失字段、异常值、除零、空列表等边界情况,这正是工业级代码与竞赛代码的重要区别。
-
结构化输出:所有题目均要求返回特定格式的字典或列表,培养数据建模和接口设计能力。
-
模块化设计 :鼓励将复杂逻辑拆分为多个小函数(如
calculate_deceleration、validate_target、fuse_sensors),便于测试和维护。
👥 适用对象
-
Python 初学者:可从第 1、6 题入手,掌握基础语法和函数编写。
-
初级开发者:建议完成第 2、4、7 题,学习循环、列表字典操作和简单模块化。
-
中级开发者:推荐挑战第 3、5、8、9、10 题,锻炼复杂条件分支、数据聚合和边界处理能力。
-
自动驾驶入门者:整套题目可作为理解感知、决策、融合概念的实践辅助材料。
-
求职备战者:特别适合准备华为 OD 机试(中等难度)或自动驾驶相关岗位的笔试面试。
🚀 学习建议
-
先独立尝试:每道题至少自己动手实现一遍,不要直接看答案。
-
重视边界测试:除了题目给出的示例,尝试构造极端输入(空列表、缺失字段、负数速度等),验证代码的鲁棒性。
-
对比优化:完成后再查看参考答案或与他人交流,比较代码的可读性、简洁度和性能。
-
扩展延伸 :可以尝试为某些题目添加单元测试(如
pytest),或者将单帧处理扩展到实时流式处理。 -
刷题对标 :如需进一步提升,可配合 LeetCode 上标签为
Array、Hash Table、Simulation的 Easy-Medium 题目,以及华为 OD 题库中的"数据统计""日志分析"类题目。
📄 文件结构
.
├── README.md # 本文件
├── 1_brake_simulate.py # 单步制动模拟
├── 2_complete_cl_simulate.py # 完整闭环仿真
├── 3_fcw_decision.py # FCW 预警决策
├── 4_sensor_fusion.py # 传感器融合(基础)
├── 5_traffic_light_warning.py # 红绿灯预警
├── 6_waypoint_validity_check.py# 路径点校验
├── 7_multi_sensor_fusion.py # 多传感器融合(扩展)
├── 8_dangerous_ttc_filter.py # 危险 TTC 过滤
├── 9_lane_level_warning.py # 车道级目标预警
└── 10_multi_frame_tracking.py # 多帧跟踪稳定性
📜 许可
本项目仅供学习交流使用,遵循 MIT License。