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

Python打印菱形、三角形出现额外None输出,如何在保留print要求下修复

问题原因

你定义的diamond和triangle两个函数内部已经通过print语句输出了图案的每一行,这两个函数没有显式编写return语句,Python中所有无显式返回值的函数默认都会返回None。你写的print(diamond(k))和print(triangle(k))相当于额外打印了函数的返回值,这就是输出末尾多出None的原因。

修改方案

你不需要在调用函数的时候额外套一层print,直接调用函数即可。函数内部的print语句已经完全满足教授要求的必须使用print输出的规则,没有取消print的使用。
修改后的代码如下:

def up_and_down(k):
    return (*range(1, k), *range(k, 0, -1))

def diamond(k):
    pad = '#'
    fill = '*'
    w = (2 * k) - 1
    for i in up_and_down(k):
        print(f'{fill * len(up_and_down(i)):{pad}^{w}}')

# 去掉外层多余的print,直接调用函数
diamond(k)

def triangle(k):
    w = (2 * k) - 1
    pad = '#'
    fill = '*'
    for i in range(1, k+1):
        print(f'{fill * len(up_and_down(i)):{pad}^{w}}')
# 同样去掉外层多余的print
triangle(k)

修改后函数内部的print会正常输出所有图案行,不会额外打印None,完全符合使用print输出的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:39:05