首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python测试回文

用Python测试回文
EN

Stack Overflow用户
提问于 2015-04-22 14:40:04
回答 4查看 455关注 0票数 2

我现在知道有更好的解决办法,但我不知道为什么我要得到我的结果

代码语言:javascript
复制
import sys

def isPalindrome(test):
    if len(test) == 1:
        return("Is a palindrome")
    else:
        if test[0] == test[-1]:
            isPalindrome(test[1:-1])
        else:
            return("Not a palindrome")        

print(isPalindrome(sys.argv[1]))

在一个真实的回文中,我得到了“无”。当结果不是回文时,我得到‘非回文’的期望值。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-04-22 14:42:27

更改为以下行:

代码语言:javascript
复制
return isPalindrome(test[1:-1])

您必须返回一个值,否则返回的值是None

票数 7
EN

Stack Overflow用户

发布于 2015-04-22 16:06:32

另一项建议

代码语言:javascript
复制
 def isPalindrome (test):
        if test[0] != test[-1]: return ("It is NOT a Palindrome")
        if len(test) == 1: return ("It is a Palindrome")
        else:return test[0] == test[-1] and isPalindrome(test[1:-1])
票数 1
EN

Stack Overflow用户

发布于 2015-04-22 14:45:36

你的问题:第7行应该是:

代码语言:javascript
复制
return isPalindrome(test[1:-1])

如果不返回,则调用函数,然后返回None。

另外,正如在其他文章中提到的,偶数字符串有问题,所以添加len(test)==0的条件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29801025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档