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

如何移除Python打印钻石图案时输出的多余None

打印钻石图案出现多余None的解决方案

问题根源

  • 你定义的triangle和diamond函数没有显式设置返回值,Python函数无自定义返回值时默认返回None
  • 你将两个函数的调用语句直接写入了f-string中,相当于把两个函数的返回值(即None)拼接为字符串,最后执行print(l)时就会额外输出两个None
  • 额外提示:两个函数内部写的k = 3属于无效代码,计算完a之后没有再用到变量k,可以直接删除

解决方案

方案1(最简修改)

两个函数本身已经内置了print语句,调用时会直接输出图案,无需再拼接字符串二次打印,直接把最后两行代码替换为:

triangle(k)
diamond(k)

方案2(函数返回字符串的写法)

如果你希望函数返回图案字符串供后续使用,可以修改函数逻辑,将每行内容收集后返回,示例如下:

k = 7
def triangle(k):
    a = (2*k) -1
    lines = []
    for x in range(0,a+1):
        if x % 2 != 0:
            f = int((a - x)/2)
            g = f"{'#'*f}{'*'*x}{'#'*f}"
            lines.append(g)
    return '\n'.join(lines)
def diamond(k):
    a = (2 * k) - 1
    lines = []
    for x in reversed(range(0, a)):
        if x % 2 != 0:
            f = int((a - x) / 2)
            g = f"{'#' * f}{'*' * x}{'#' * f}"
            lines.append(g)
    return '\n'.join(lines)

l = f"{triangle(k)}\n{diamond(k)}"
print(l)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:39:00