在 Python 中递归使用 ord()

Using ord() recursively in Python

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

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:])) back ord 为 string 所以你不需要 ord(s[1:]) 你需要 string_to_num(s[1:]) 并且你需要 back string 然后使用 +,您可以像下面这样更改您的代码:

>>> 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]