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

Python递归中return语句后print无法执行的原因

为什么Python递归函数里执行return后,后续print语句无法运行?

这是因为return语句的核心作用就是立即终止当前函数的执行——只要函数执行到return这一行,就会立刻返回结果(或空值),函数内部return之后的所有代码都不会被执行,这个规则对递归函数和普通函数完全一致。

看你给出的代码:

arr=['zero','one','two','three','four','five','six','seven','eight','nine']
def numToWord(num):
    if num==0:
        return
    
    dig=num%10
    num=num//10
    #print(arr[dig],end=" ")
    return numToWord(num)
    print(arr[dig],end=" ")
    
numToWord(345)

其中return numToWord(num)这一行,在调用递归函数的同时直接触发了return,函数执行到这里就会终止,后面的print(arr[dig],end=" ")根本没机会被执行。

如果想要实现按数字高位到低位输出对应单词的功能,你需要调整递归和print的顺序,把return去掉或者放到print之后,比如:

arr=['zero','one','two','three','four','five','six','seven','eight','nine']
def numToWord(num):
    if num==0:
        return
    
    dig=num%10
    num=num//10
    # 先递归处理高位数字,再打印当前位
    numToWord(num)
    print(arr[dig],end=" ")
    
numToWord(345)  # 输出结果:three four five 

这个写法里,函数会先递归处理更高位的数字,直到触发num==0的终止条件开始返回,之后才会依次执行栈中每个递归层级的print语句,从而得到正确的输出顺序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:20:14