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

调用递归函数backwards_alphabet()后输出出现None的解决方法

解决递归函数调用后输出末尾带None的问题

你当前遇到的情况是:调用递归函数backwards_alphabet()并传入starting_letter后,输出结果末尾多了个None,且无法修改starting_letter = input()以上的代码,需要得到无None的倒序字母序列。

当前代码如下:

def backwards_alphabet(curr_letter):
    if curr_letter == 'a':
        print(curr_letter)
    else:
        print(curr_letter)
        prev_letter = chr(ord(curr_letter) - 1)
        backwards_alphabet(prev_letter)

starting_letter = input()

print(backwards_alphabet(starting_letter))
  • 当前输出(输入f时):f e d c b a None
  • 预期输出:f e d c b a

问题原因

backwards_alphabet()函数内部已经通过print()语句输出了所有字母,但函数本身没有定义返回值,Python中无返回值的函数默认会返回None。你在外层用print()包裹函数调用,相当于把函数的返回值None也打印了出来,所以末尾会多一个None。

解决方法

直接调用函数,去掉外层的print()即可:

修改后的代码:

def backwards_alphabet(curr_letter):
    if curr_letter == 'a':
        print(curr_letter)
    else:
        print(curr_letter)
        prev_letter = chr(ord(curr_letter) - 1)
        backwards_alphabet(prev_letter)

starting_letter = input()

backwards_alphabet(starting_letter)

运行修改后的代码,就能得到预期的无None的倒序字母序列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:23:16