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
相关产品推荐
相关产品推荐

