用于回文的Python reverse()

时间:2011-03-05 08:06:11

标签: python reverse palindrome

我刚开始使用python,我正在尝试测试用户输入的字符串作为回文。我的代码是:

x=input('Please insert a word')
y=reversed(x)
if x==y:
    print('Is a palindrome')
else:
    print('Is not a palindrome')

这总是返回false,因为y变成<reversed object at 0x00E16EF0>而不是反向字符串。 我什么都不知道?你会如何编码这个问题呢?

7 个答案:

答案 0 :(得分:17)

试试y = x[::-1]。这使用拼接来获得字符串的反转。

reversed(x)返回一个迭代器,用于以相反的顺序循环字符串中的字符, not 一个可以直接与x进行比较的字符串。

答案 1 :(得分:8)

reversed返回一个迭代器,您可以使用join方法将其转换为字符串:

y = ''.join(reversed(x))

答案 2 :(得分:1)

为了将来参考,上面的答案中的lambda用于快速回文检查:

isPali = lambda num: str(num) == str(num)[::-1]

使用示例:

isPali(9009) #returns True

答案 3 :(得分:0)

试试这段代码。

def pal(name):
        sto_1 = []
        for i in name:
                sto_1.append(i)

        sto_2 = []
        for i in sto_1[::-1]:
                sto_2.append(i)

        for i in range(len(name)):
                if sto_1[i] == sto_2[i]:
                        return "".join(sto_1), "".join(sto_2)
                else:
                        return "no luck"

name = raw_input("Enter the word :")
print pal(name)

答案 4 :(得分:0)

list(reverse( mystring )) == list( mystring )

或数字

list(reverse( str(mystring) )) == list( str(mystring) )

答案 5 :(得分:0)

试试这段代码:

def palindrome(string):
    i = 0 
    while i < len(string):
        if string[i] != string[(len(string) - 1) - i]:
            return False
        i += 1
    return True

print palindrome(“hannah”)

答案 6 :(得分:0)

尝试以下代码以查找原始和反向是否相同:-

if a == a[::-1]: 

#这将反转给定的字符串,最终将使您了解给定的字符串是否是回文。