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

如何消除生成n行星号的递归函数输出中的None错误?

输出末尾出现None的原因及解决办法

为什么会出现None?

  1. Python里,任何没有显式return语句的函数,默认都会返回None。
  2. 你执行print(recursive_lines(5))时,首先recursive_lines(5)会运行内部的for循环,打印出5行星号;接着这个函数返回默认的None,外层的print()就把这个None也打印了出来,所以末尾多了一行None。

解决办法

  • 最简单的修复:直接调用函数,不要用print()包裹,把代码里的print(recursive_lines(5))改成:
    recursive_lines(5)
    
  • 如果你非要用print()包裹(其实没必要),可以给函数加一个返回值,比如:
    def recursive_lines(n):
        for n in range(0,n):
            print ('*' + ('*'*n))
        return ''  # 添加返回语句,避免返回None
    
    print(recursive_lines(5))
    

额外说明:你的函数不是递归函数

你提到这是“递归函数”,但当前代码用的是for循环,并没有函数调用自身的逻辑。如果要写真正的递归版本,参考下面的代码:

def recursive_lines(n):
    if n <= 0:
        return
    recursive_lines(n-1)  # 递归调用自身
    print('*' * n)

recursive_lines(5)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:01:10