简单模拟判断机器人应该采取什么动作
代码逐行解析这段代码实现了一个简单的「指令驱动移动」程序根据用户输入的指令串只含F/B/L/R让一个点从原点(0, 0)出发逐步移动并打印出完整路线、最终坐标和总步数。1.compute_route(commands)—— 核心移动逻辑defcompute_route(commands):按指令串逐步移动返回记录每一步位置的列表。x,y0,0route[(x,y)]forchincommands:ifchF:y1elifchB:y-1elifchL:x-1elifchR:x1else:continueroute.append((x,y))returnroutex, y 0, 0初始化坐标从原点出发。route [(x, y)]用列表记录路线先把起点放进去。for ch in commands逐个字符遍历指令串。四个方向分支FForward→y 1向上走一步BBackward→y - 1向下走一步LLeft→x - 1向左走一步RRight→x 1向右走一步else: continue遇到其他字符直接跳过不产生移动。每执行一条有效指令就把新坐标(x, y)追加进route。最终返回route即每一步的位置列表。2.show_result(commands)—— 打印完整结果defshow_result(commands):计算并打印一条指令串的完整路线与结果。routecompute_route(commands)final_x,final_yroute[-1]stepslen(route)-1route_text → .join(({}, {}).format(px,py)forpx,pyinroute)print(输入指令{}.format(commands))print(路线{}.format(route_text))print(最终坐标({}, {}).format(final_x,final_y))print(总步数{}.format(steps))iffinal_x0andfinal_y0:print(已回到起点)else:print(未回到起点)print(-*40)route compute_route(commands)调用上面的函数拿到完整路线。final_x, final_y route[-1]取列表最后一个元素即最终坐标。steps len(route) - 1总步数 路线点数 - 1去掉起点本身。route_text用 → 把每个坐标点拼接成可读的路线字符串。依次打印输入指令、路线、最终坐标、总步数。判断是否回到原点(0, 0)并输出对应提示。print(- * 40)打印分隔线便于多条指令结果之间区分。3.main()与程序入口defmain():commandsinput(请输入指令串只含 F/B/L/R).strip().upper()show_result(commands)if__name____main__:main()input(...)提示用户输入指令串。.strip()去掉首尾空白字符。.upper()统一转成大写避免用户输入小写f/b/l/r时匹配不上。show_result(commands)调用打印函数输出结果。if __name__ __main__:保证只有直接运行本文件时才执行main()被其他模块导入时不会自动运行。运行示例输入FFLBR输出如下输入FLBR输出如下避障决策程序解析这段代码实现了一个「避障决策」程序根据每组传感器测得的距离和当前电量自动判断小车应该执行哪种动作并统计各类动作的执行次数。1. 数据准备distances[80,35,10,80,20,50]batteries[60,60,60,15,20,20]ACTIONS[正常前进,减速前进,停止避障,停止并充电]distances列表存放 6 组障碍物距离单位 cm。batteries列表存放对应的 6 组电量单位 %。ACTIONS列表定义四种可能的动作名称供后续统计使用。2.decide_action(distance, battery)—— 决策核心defdecide_action(distance,battery):根据一组距离, 电量返回应执行的动作文字。ifbattery20:return停止并充电ifdistance20:return停止避障ifdistance50:return减速前进return正常前进函数接收两个参数distance距离和battery电量。判断顺序从上到下先满足哪个条件就返回哪个动作电量低于 20% → 无论距离多远都返回「停止并充电」电量优先距离小于 20cm → 障碍物太近返回「停止避障」距离小于 50cm → 距离较近返回「减速前进」其余情况 → 距离充足返回「正常前进」。3.main()—— 主流程defmain():stats{name:0fornameinACTIONS}forindexinrange(len(distances)):distancedistances[index]batterybatteries[index]actiondecide_action(distance,battery)stats[action]1print(第{}组距离 {}cm电量 {}%动作{}.format(index1,distance,battery,action))print(-*40)summary.join({} {}次.format(name,stats[name])fornameinACTIONS)print(统计结果{}四项合计{}次。.format(summary,len(distances)))stats {name: 0 for name in ACTIONS}用字典推导式创建统计表把四种动作的计数都初始化为 0。for index in range(len(distances))按索引遍历 6 组数据。distance distances[index]、battery batteries[index]按相同索引取出对应的距离和电量。action decide_action(distance, battery)调用决策函数得到该组应执行的动作。stats[action] 1把对应动作的计数加 1。print(...)打印当前组的编号、距离、电量和决策结果。print(- * 40)打印分隔线。summary用.join(...)把四种动作的统计结果拼接成字符串。最后打印统计结果并用len(distances)验证四项合计次数等于数据组数。4. 程序入口if__name____main__:main()保证只有直接运行本文件时才执行main()被其他模块导入时不会自动运行。运行结果推演逐组分析组距离电量决策18060正常前进23560减速前进31060停止避障48015停止并充电52020减速前进65020正常前进统计结果正常前进 2 次减速前进 2 次停止避障 1 次停止并充电 1 次四项合计 6 次。

相关新闻

Spring Boot秒杀系统实战:Redis+RabbitMQ高并发源码解析

Spring Boot秒杀系统实战:Redis+RabbitMQ高并发源码解析

简介:这是一套基于SpringBoot的电商秒杀系统完整项目源码,面向计算机相关专业的在校学生、教师及企业开发者,尤其适合作为毕业设计、课程设计或项目立项演示的参考方案。项目采用MySQL、SpringBoot、Redis与RabbitMQ技术栈,重点解…

2026/10/10 18:43:52 阅读更多 →
华为云部署OpenClaw AI Agent框架零基础实操指南

华为云部署OpenClaw AI Agent框架零基础实操指南

最近后台收到不少读者私信,几乎都在问同一件事:华为云上怎么把 OpenClaw 跑起来?作为一款把大模型、工具调用和自动化任务整合在一起的 AI Agent 框架,OpenClaw(也叫 Clawdbot)这两年的热度确实很高。它要解…

2026/10/10 18:43:44 阅读更多 →
蓝桥杯Python搜索题攻略:DFS与BFS模板详解

蓝桥杯Python搜索题攻略:DFS与BFS模板详解

话不多说,直接进入主题。蓝桥杯Python组,搜索题几乎是必考题型,DFS和BFS问得又勤又深。省赛的填空题靠暴力搜索出答案,大题靠BFS解决最短路径,DFS解决方案枚举和连通块问题。这篇是《蓝桥杯Python备赛笔记》系列第六篇…

2026/10/10 18:43:48 阅读更多 →

最新新闻

从“聊完就忘“到动态画像:Supermemory如何处理信息冲突与过期记忆

从“聊完就忘“到动态画像:Supermemory如何处理信息冲突与过期记忆

从"聊完就忘"到动态画像:Supermemory如何处理信息冲突与过期记忆 【免费下载链接】supermemory Memory and context engine app that is extremely fast, scalable, and can be run fully locally. The Memory API for the AI era. 项目地址: https://…

2026/10/10 22:31:17 阅读更多 →
Django URLconf路由机制详解:匹配、命名空间与反向解析

Django URLconf路由机制详解:匹配、命名空间与反向解析

Django 路由(URLconf)是我在带新人时最常被问到的模块之一。很多人觉得自己会写path()了就算懂路由,可真到项目里,URL 带参数匹配不上、多个 App 里出现同名 name、改一次 URL 全站模板都要跟着改……这些破事全都指向同一个问题&…

2026/10/10 22:31:17 阅读更多 →
冷藏车半路抛锚怎么办?货物保冷和倒车接驳的处理办法

冷藏车半路抛锚怎么办?货物保冷和倒车接驳的处理办法

冷藏车半路抛锚怎么办?货物保冷和倒车接驳的处理办法冷藏车半路抛锚,发动机或底盘走不了,最揪心的是车厢里那车货。冷链车的特殊性在于:车停了,冷不能停。处置的先后顺序必须是先保冷、再修车、必要时尽快倒车接驳&…

2026/10/10 22:31:17 阅读更多 →
冷链货数量短少、包装破了怎么办?签单和处理常见做法

冷链货数量短少、包装破了怎么办?签单和处理常见做法

冷链货数量短少、包装破了怎么办?签单和处理常见做法冷链货到了,点出来数量短少、外箱压破,是验收环节最常见的两种异常。签单这一步最关键:字一签干净,后面再想追责就被动。我做冷链这些年,处理这类情况的…

2026/10/10 22:31:17 阅读更多 →
制冷机组半路不制冷,司机怎么先判断是哪类问题?

制冷机组半路不制冷,司机怎么先判断是哪类问题?

制冷机组半路不制冷,司机怎么先判断是哪类问题?冷藏车制冷机组半路不制冷,司机在现场的第一件事不是拆机器,而是先判断大概是哪一类毛病,再决定继续跑、就近修还是倒车换货。判断错了,要么白跑一趟&#xf…

2026/10/10 22:31:17 阅读更多 →
Linux多线程数据竞争:互斥锁与原子操作选型实战

Linux多线程数据竞争:互斥锁与原子操作选型实战

前阵子我负责的一个统计服务又出问题了。同样的输入数据,8个线程并行处理,结果每次跑出来都不一样,有时候差几条,有时候差几百条。一开始怀疑是上游数据有误,排查了好几天,最后用ThreadSanitizer工具一跑&a…

2026/10/10 22:30:17 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →