You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python字符串拆分后for循环仅执行最后一个元素怎么处理?

代码问题修复说明

你的代码存在两个核心错误,修复后即可实现遍历执行所有绘图命令的效果:

  • 缩进错误,循环体范围不正确
    Python靠缩进判断代码块的从属关系,你当前写的for循环只包含了计算命令长度、过滤空命令的逻辑,后续提取命令类型、打印信息、调用绘图控制函数的代码全部没有缩进进for循环内部。这就导致循环只是遍历了所有命令但没有做任何处理,等循环结束后变量cmd只会保留列表最后一项的内容,仅执行一次后续逻辑,所以只输出了最后一项F102的结果。
  • 传参错误,给变量名加了多余引号
    你调用turtle_controller时写的是turtle_controller('cmd_type', num),给cmd_type加了引号相当于传的是固定字符串"cmd_type",而不是你前面提取出来的命令类型变量,所以程序识别不到有效命令,报错Unrecognized Command。

修复后完整代码

#String Artist
def string_artist(program):
    cmd_list = program.split('-')
    print(cmd_list) #我添加该行用于确认拆分结果#
    for cmd in cmd_list:
        cmd_len = len(cmd)
        if cmd_len == 0:
            continue
        # 后续处理逻辑全部缩进,归入for循环内部
        cmd_type = cmd[0]
        num = 0
        if cmd_len > 1:
            num_string = cmd[1:]
            num = int(num_string)
        print(cmd, ':', cmd_type, num)
        # 去掉cmd_type的引号,传入变量本身
        turtle_controller(cmd_type, num)

修复后再运行代码就会依次处理拆分出来的N、L90、F100、F101、F102所有命令,正常执行绘制逻辑。

内容的提问来源于stack exchange,提问作者KhangeeBowl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:45:02