并排双菱形打印间距问题:中间行相连的Python代码修复需求
解决两个并排菱形中间行接触的问题
你当前的代码里两个菱形的中间行贴在一起,问题出在两个菱形之间的间隔是随行数变化的,只要给它们加个固定的分隔空格,就能让两个菱形独立分开,还不会破坏原有结构。
修改后的完整代码
rows = int(input("请输入半菱形的行数:")) if rows <= 0: print("输入无效,请输入正整数。") else: # 上半部分两个三角形 for i in range(rows): # 第一个菱形的前置空格 for s in range(rows - i): print(" ", end="") # 第一个菱形的星号 for stars in range((i * 2) - 1): print("*", end="") # 两个菱形之间的固定分隔空格(可按需调整数量) print(" ", end="") # 第二个菱形的前置对齐空格 for s in range(rows - i): print(" ", end="") # 第二个菱形的星号 for stars in range((i * 2) - 1): print("*", end="") print() # 下半部分两个三角形 for i in range(rows, 0, -1): # 第一个菱形的前置空格 for s in range(rows - i): print(" ", end="") # 第一个菱形的星号 for stars in range((i * 2) - 1): print("*", end="") # 两个菱形之间的固定分隔空格(和上面数量一致) print(" ", end="") # 第二个菱形的前置对齐空格 for s in range(rows - i): print(" ", end="") # 第二个菱形的星号 for stars in range((i * 2) - 1): print("*", end="") print()
关键修改点
- 添加固定分隔空格:在每个菱形的星号打印完成后,插入一行
print(" ", end="")(这里用2个空格,你可以根据需求改成3个或更多),确保两个菱形始终有独立的间隔,不会在中间行贴在一起。 - 调整无效输入判断位置:把输入合法性检查移到代码最开头,避免输入0或负数时执行多余的循环逻辑。
这样修改后,两个菱形的形状完全保留,同时始终保持独立的间距。
内容的提问来源于stack exchange,提问作者coder J
相关产品推荐
相关产品推荐

