recursion - 在python中为递归函数返回True
问题描述
有人可以告诉我简单递归函数的逻辑有什么问题,如下:
def回文(字符串):
if len(string)<=1:
return True
elif string[0]== string[-1]:
palindrome(string[1:-1])
else:
return False
False 部分可以正常工作,例如:palindrome('good') 函数正确返回 False。但是如果它输入了一个回文,例如:palindrome('level'),该函数什么也不返回。
解决方案
如评论中所述,递归调用函数时不会返回该函数,但是应该返回,否则原始函数调用将返回None。
解决方案:
def palindrome (string):
if len(string)<=1:
return True
elif string[0].lower() == string[-1].lower():
return palindrome(string[1:-1])
else:
return False
我还会添加“较低”,因为大写不相关
推荐阅读
- dart - 尝试初始化 StreamSubscription 时应用程序崩溃
- echarts - Echarts:为所有系列设置默认选项
- jquery - 如果 html == 0 和 html == 2 jquery ajax php 是什么意思
- codeigniter - 如何为多语言更改 codeigniter 中的标准 URL?
- xml - XSLT 2.0:复制和修改分支,但保持源代码处于原始状态
- html - 连续3个项目,但中间应包含多个div并居中
- android - 如何使用 Android 有条件地启动 Opencv 实时图像处理?
- html - 无法修复左侧边栏
- vb.net - 大幅增加数组的大小
- r - 如何用 R 打开一个 .int 文件?