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

求编写矩形内嵌菱形的Python代码:仅完成菱形部分,需补充矩形部分

矩形内嵌菱形的完整实现

基于你提供的菱形代码,我们可以通过以下步骤添加矩形边框:

  1. 先收集菱形的每一行内容,避免重复输出逻辑;
  2. 打印矩形的顶部边框(全星号,长度等于菱形的最大宽度a);
  3. 对每一行菱形内容,将其居中填充到矩形内部(宽度为a-2,减去左右边框的星号),然后在前后各加一个星号;
  4. 打印矩形的底部边框。

完整代码如下:

a = int(input())
b = a // 2
c = b + 1

# 收集菱形的所有行内容
diamond_rows = []

# 原菱形上半部分
for i in range(0, c):
    row = ""
    for j in range(0, c - i):
        row += " "
    for l in range(0, i):
        row += "*"
    for e in range(0, i - 1):
        row += "*"
    diamond_rows.append(row)

# 原菱形下半部分
for i in range(0, c):
    row = ""
    for j in range(0, i):
        row += " "
    for l in range(0, b - i + 1):
        row += "*"
    for e in range(0, b - i):
        row += "*"
    diamond_rows.append(row)

# 打印矩形内嵌菱形
rect_width = a
# 顶部边框
print("*" * rect_width)
# 中间行
for row in diamond_rows:
    padded_row = row.center(rect_width - 2)
    print(f"*{padded_row}*")
# 底部边框
print("*" * rect_width)

优化说明(可选)

你提供的原菱形代码输出的是左对齐的菱形,若需要常规的居中菱形,可以替换菱形生成部分的代码,这样内嵌后的效果更规整:

a = int(input())
if a % 2 == 0:
    print("请输入奇数")
else:
    b = a // 2
    diamond_rows = []
    # 上半部分居中菱形
    for i in range(b + 1):
        stars = 2 * i + 1
        spaces = b - i
        diamond_rows.append(" " * spaces + "*" * stars)
    # 下半部分居中菱形
    for i in range(b - 1, -1, -1):
        stars = 2 * i + 1
        spaces = b - i
        diamond_rows.append(" " * spaces + "*" * stars)
    
    # 矩形边框部分
    rect_width = a
    print("*" * rect_width)
    for row in diamond_rows:
        padded_row = row.center(rect_width - 2)
        print(f"*{padded_row}*")
    print("*" * rect_width)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:54:51