我需要使用遞回函式將字串轉換為數字,并且我對如何繞過基本情況和遞回情況感到有些困惑。我有以下代碼,但我不確定哪里出錯了。
def string_to_num(s):
if s == "":
return []
else:
return ord(s[0]) string_to_num(ord(s[1:]))
uj5u.com熱心網友回復:
你需要假設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]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/334078.html
上一篇:如何檢測遞回函式的最后一次呼叫?
下一篇:如何在構建角度材料樹時存盤路徑
