gpt4 book ai didi

python - 在应该返回字符串的函数中出现 NoneType 错误?

转载 作者:行者123 更新时间:2023-12-01 03:15:39 25 4
gpt4 key购买 nike

我正在尝试从字符串列表中提取每个字符串的第一个字母。我知道我可以使用抽象列表函数来做到这一点,但我想使用结构递归来做到这一点。

考虑下面的代码:

def acronym(los)
if los != []:
return los[0][0] + acronym(los[1:])

我收到以下错误:

builtins.TypeError: Can't convert 'NoneType' object to str implicitly

虽然我对 SOF 做了一些关于这个错误的研究,但我仍然不明白为什么这个函数应该返回 None,当 los[0][0] 是一个字符串,acronym(los[1:]) 也返回一个字符串。

有什么建议吗?

最佳答案

每次 acronym() 调用自身时,它都会对列表中除第一个字符串之外的所有字符串执行此操作:los[1:]

最终,当列表中只剩下一个字符串时,“除了第一个字符串之外的所有字符串”根本就不是字符串,因此在 acronym( 的 next 调用中)los 是一个空列表,并且您的 if los != []: 测试失败。

由于在这种情况下您没有显式返回任何内容,Python 会隐式返回 None,它无法与您构建的字符串连接:

>>> "Hhay" + None
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't convert 'NoneType' object to str implicitly

关于python - 在应该返回字符串的函数中出现 NoneType 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42475877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com