6

Pythonを使い始めたばかりで、ユーザーが入力した文字列を回文としてテストしようとしています。私のコードは次のとおりです。

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

<reversed object at 0x00E16EF0>yは逆の文字列ではなくのようになるため、これは常にfalseを返します。私は何について無知ですか?この問題をどのようにコーディングしますか?

4

7 に答える 7

18

試してみてくださいy = x[::-1]。これは、スプライシングを使用して文字列の逆を取得します。

reversed(x)直接比較できる文字列ではなく、文字列内の文字を逆の順序でループするためのイテレータを返しますx

于 2011-03-05T08:09:43.740 に答える
8

reversedjoin次のメソッドを使用して文字列にできるイテレータを返します。

y = ''.join(reversed(x))
于 2011-03-05T08:12:17.453 に答える
2

今後の参考のために、パリンドロームをすばやくチェックするための上記の回答からのラムダ:

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

使用例:

isPali(9009) #returns True
于 2013-04-30T11:42:48.307 に答える
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)
于 2015-01-24T07:48:43.437 に答える
0
list(reverse( mystring )) == list( mystring )

または数字の場合

list(reverse( str(mystring) )) == list( str(mystring) )
于 2016-10-11T00:09:47.150 に答える
0

このコードを試してください:

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

印刷回文( "ハンナ")

于 2016-12-19T21:25:21.627 に答える
0

このコードを試して、オリジナルとリバースが同じかどうかを確認してください。-

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

#これにより、指定された文字列が逆になり、最終的には、指定された文字列が回文であるかどうかがわかります。

于 2020-07-13T21:56:23.183 に答える