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