2017-03-21 9 views
0

先生は私が今使っている逆関数の代わりに逆ループを使いたいと思っています。私はうまくいくものを手に入れることができない。回文ループの逆ループ

def palindrome(): 
    myInput = input("Enter a Word: ") 
    word = myInput[::-1] 
    if myInput == word: 
     print("That is a palindrome") 
     return True 
    else: 
     print("That is not a palindrome") 
     return False 
palindrome() 
+0

これは問題なく機能しています。 –

+0

http://imgur.com/qzqVE0G –

+0

ええ、それは私の先生が私にその逆機能の代わりにループを使用することを望んでいることが分かります。 –

答えて

0
def palindrome(): 
    string = input("Enter a Word: ") 
    for i,char in enumerate(string): 
     if char != string[-i-1]: 
      return False 
    return True 

編集のためのコメントの下:

列挙()関数は反復可能関数にカウンタを追加します。

>>> string = "PARAM" 
>>> for count, elem in enumerate(string): 
...  print count, elem 
... 
0 P 
1 A 
2 R 
3 A 
4 M 

ので、ラインif char != string[-i-1]はフロントから1つの文字と最後の1つの文字にマッチしようとします。

+0

この方法とその理由を説明できますか?私はかなり言語に新しいです –

+0

私は答えを編集しています。これはあなたに役立ちます。 –

+0

ありがとうございました! –

0

以下のコードを試してみることもできますが、まず自分で試してみることをおすすめします。 (あなたは再帰呼び出しを記述することができるしている場合、あなたはあまりにも反復1を自分で書くことができる必要があり、そのため。)

def reverse(text): 
     rev = "" 
     final = "" 
     for a in range(0,len(text)): 
      rev = text[len(text)-a-1] 
      final = final + rev 
return final