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

Python 3.x 实现无填充斜杠菱形:简化diamond(num)函数咨询

看起来你想要的菱形结构其实有很清晰的规律,完全可以用更简洁的方式实现,不需要复杂的循环和字典操作。

先梳理下你给出的示例里的规律:

  • 总共有 2*num 行,上下各占 num 行
  • 上半部分:第一行是单独的 /,剩下 num-1 行都是「空格+/」
  • 下半部分:前 num-1 行都是「空格+\ +空格+/」,最后一行是 \/

基于这个规律,我们可以用列表乘法快速生成重复行,再拼接成最终结果,代码简洁又易读:

def diamond(num):
    # 生成上半部分的行
    top = ["/"] + [" /"] * (num - 1)
    # 生成下半部分的行(注意反斜杠需要转义,所以用\\)
    bottom = [" \ /"] * (num - 1) + ["\\/"]
    # 合并所有行并换行分隔
    return "\n".join(top + bottom)

测试一下这个函数的输出:

  • diamond(1) 输出:
/
\/
  • diamond(2) 输出:
/
 / 
 \ /
\/
  • diamond(3) 输出:
/
 / 
 / 
 \ /
 \ /
\/

完全匹配你给出的示例效果!

这种写法把重复的行用列表乘法直接生成,省去了复杂的逻辑判断,代码维护起来也更轻松。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:09:32