在Python中递归使用ord()



我需要使用递归函数将字符串转换为数字,我对如何绕过基本和递归情况有点困惑。我有以下代码,但我不确定哪里出错了。

def string_to_num(s):
if s == "":
return []
else:
return ord(s[0]) + string_to_num(ord(s[1:]))

你需要假设string_to_num(ord(s[1:]))返回字符串为string,所以你不需要ord(s[1:]),你需要string_to_num(s[1:]),你需要返回字符串,然后使用+,你可以像下面这样改变你的代码:

>>> def string_to_num(s):
...    if s == '':
...        return ''
...    return f'{ord(s[0])}' + string_to_num(s[1:])
>>> string_to_num('abc')
'979899'

如果你想要一个列表,你可以这样写:

>>> def string_to_num(s):
...    if s == '':
...        return []
...    return [ord(s[0])] + string_to_num(s[1:])
>>> string_to_num('abc')
[97, 98, 99]

相关内容

  • 没有找到相关文章

最新更新