【发布时间】:2022-01-03 07:03:36
【问题描述】:
是否可以在递归函数调用中的'return'语句下使用'if'语句?如果没有,还有什么其他技术/方法可以弥补它? 例如:
def is_palindrome(s, count=0):
if count == int(len(s)/2):
return True
return is_palindrome(s,count+1) if s[count] == s[len(s)-(count+1)]
res = is_palindrome("rever")
print(res)
【问题讨论】:
-
旁注:您应该使用
if count == len(s) // 2:,而不是if count == int(len(s)/2):。前者直接执行仅整数下限除法,后者执行浮点除法,然后使用int构造函数截断小数部分(速度较慢,并且对于除 2 的幂以外的除数或足够大的整数,可能不准确)。 -
看到这个related Q&A
标签: python if-statement recursion return