2016-10-04 37 views
-2

こんばんは皆さん、シンプルなのpython:回文機能(回文場合回文ない場合はfalse、trueを返します)

私はPythonでのコースの割り当てに取り組んでいます。私たちの仕事は、文字列が回文であればTrueを返す関数を書くこと、それ以外はFalseを返すことです。次のコードは、非扇形文字の場合はFalseをコンソールに報告しますが、それが回文文字列の場合はコンソールに何も報告しません。私はそれが再帰呼び出しかelif文のどちらかで失われていると仮定しますが、どこが間違っているのか分かりません。任意の助けを大いに感謝:)コード:

def middle(word): 
    return word[1:-1] 

def last(word): 
    return word[-1] 

def first(word): 
    return word[0] 

def isPalindrome(word): 
    if(len(word)<1):       
     print("You entered a blank word!") 
    elif(len(word)==1): 
     return True 
    elif(first(word)==last(word)): 
     if(middle(word)==''): 
      return True 
     isPalindrome(middle(word)) 
    else: 
     return False 
+0

入力としてはどうすればよいですか?私はリストを仮定します、それは正しいですか? –

+0

代わりに、再帰的でなければ、古典的な 'word == reverse(word)'があります。 – Carcigenicate

答えて

0

Pythonを使用してpalindromeをチェックする方がはるかに簡単な方法があります。

return isPalindrome(middle(word)) 

することができます、例えば:それはさておき、あなたの現在のアプローチのために、あなたは他の再帰呼び出しの出力は、あなたの関数がそのelifブランチのNoneを返しますリターンする必要があります、単に文字列を反転し、反転し、元の文字列が等しいかどうかを確認:

word == word[::-1] 
0
def isPalindrome(word): 
    return word == word[::-1] 

word[::-1]word。これにより、wordが後方にwordと同じかどうかがチェックされます。

関連する問題