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

如何将打印星号的Python循环代码改写为递归实现?

递归改写方案

核心逻辑

原循环的执行逻辑是从0开始,逐行打印对应数量的星号,直到打印满n行为止,对应的递归实现需要满足两个核心规则:

  • 终止条件:当前打印的星号数量等于总需求行数时,停止递归
  • 递归递推:打印当前行内容后,将计数+1传入下一层递归

完整实现代码

def print_stars(current, total):
    # 递归终止条件
    if current == total:
        return
    print("*" * current)
    # 递归调用,打印下一行
    print_stars(current + 1, total)

def main():
    n = int(input("How many lines to display? "))
    # 替换原for循环,从0个星开始打印
    print_stars(0, n)
    input("Press the <Enter> Key to quit")

main()

注意事项

上述实现和原代码的输出结果完全一致,没有逻辑差异。但Python默认递归深度上限约为1000,如果需要打印的行数超过这个值,会触发递归深度溢出报错,这种场景下更推荐使用原循环实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:45:06