我正在做一個遞歸函數,將字符串切片,直到它爲空。當它爲空時,它可以選擇字符,並打印或返回值。在這種情況下,我期待我的函數返回兩個單詞'Hello'和'World'。也許我錯了,但我不明白的是,我的函數不讓我打印或返回字符串。我不尋求幫助,但我想解釋一下:)謝謝Python:函數可以返回一個字符串嗎?
def lsubstr(x):
a= ''
b= ''
if x == '':
return ''
else:
a = a + x[0:]
b = b + x[1:]
lsubstr(x[2:])
#print (a,b)
return a and b
lsubstr('hweolrllod')
,所以我改變了我的代碼如下:
def lsubstr(x):
if len(x) <1:
return x
else:
return (lsubstr(x[2:])+str(x[0]),lsubstr(x[2:])+str(x[1]))
lsubstr('hweolrllod')
什麼,我想說明的是一個元組這將儲存裝置2對字符並連接下一個的,
錯誤我得到的是 類型錯誤:無法將「元組」對象隱含str的
究竟是GOI ng錯誤,我已經檢查可視化,它在拼接時遇到了麻煩。
是,函數*可以*返回一個字符串。你的問題至少是你的一個問題,就是你根本沒有從遞歸調用返回(例如'return lsubstr(..)')。其次,什麼是'a和b'應該準確返回?! – deceze
'和'運算符通常用於布爾邏輯。我相信你想用'+'連接字符串。 –
你的問題的一部分可能是你沒有對任何調用'lsubstr'返回的值做任何事情。也許你想打印出來或分配給一個變量或東西? – Duncan