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

Python实现指定位置打印+和-的板轮廓问题求助

解决Python绘制板轮廓的输出问题

问题分析

你的两次代码都存在逻辑顺序错误,导致输出不符合预期:

  • 第一次代码:每次循环先打印-,再在目标索引处打印+,这会让每个+前多一个-(比如索引0位置变成-+),破坏了预期的开头结构。
  • 第二次代码:每次循环先判断打印+,之后必然打印-,导致每个+后多一个-,且最后索引24的+后额外多了一个-,出现结尾多余字符。

正确代码实现

核心逻辑是:遍历每个索引,仅在目标索引位置打印+,其余位置打印-,确保每个索引对应一个字符:

def display(board):
    for i in range(25):
        # 检查当前索引是否是需要打印"+"的位置
        if i in {0, 8, 16, 24}:
            print("+", end="")
        else:
            print("-", end="")
    # 可选:打印换行符,让输出更整洁
    print()

输出结果

调用display(None)(或任意传入参数)后,将得到预期输出:

+-------+-------+-------+

额外优化思路

如果需要更简洁的写法,可以用字符串拼接代替循环打印:

def display(board):
    # 初始化一个长度为25的列表,默认填充"-"
    outline = ["-"] * 25
    # 在目标索引位置替换为"+"
    for pos in [0, 8, 16, 24]:
        outline[pos] = "+"
    # 拼接列表为字符串并打印
    print("".join(outline))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 00:45:13