试图找出如何从函数中返回多个值。我试过并搜索了信息,似乎我应该使用元组。
这是一个普通的递归函数(从另一个stackoverflow问题复制):
def backward(text):
if text == '':
return text
else:
return text[-1] + backward(text[:-1])
现在,假设我希望函数既返回反转文本又返回元组中的初始文本。我怎么能让它起作用? 我想要得到的是什么:
>>> print(backward('hello'))
('olleh','hello')
不断收到“无法将'元组'对象隐式转换为str”等错误。有什么想法吗? 感谢。
答案 0 :(得分:3)
您不需要递归此
def backward(text):
if text == '':
return text
else:
return text[::-1], text
答案 1 :(得分:0)
def backward(text):
return (backwardImpl(text), text)
def backwardImpl(text):
if text == '':
return text
else:
return text[-1] + backwardImpl(text[:-1])
>>> print(backward('hello'))
('olleh','hello')
具有一个功能的版本:
def backward(text, recursiveCall = False):
if not recursiveCall:
return (backward(text, True), text)
if text == '':
return text
else:
return text[-1] + backward(text[:-1], True)
但是,如果客户端调用第二个参数设置为True
,则会破坏结果。