-1

私はこのコードを持っています:

def reverse (word):
    newword = ''
    letterflag = -1
    for numletter in word:
        newword += word[letterflag]
        letterflag-=1
        s=newword
    s.upper()
    return newword
  
def isPalindrome(word, ignorecase=False):

    """
    >>> type(isPalindrome("bob"))
    <type 'bool'>
    >>> isPalindrome("abc")
    False
    >>> isPalindrome("bob")
    True
    >>> isPalindrome("a man a plan a canal, panama")
        True
    >>> isPalindrome("A man a plan a canal, Panama")
    False
    >>> isPalindrome("A man a plan a canal, Panama", ignorecase=True)
    True
    """
    word = str (word)
    newword = reverse(word)
    if word == newword:
        return True
    else:
        return False
  
   

「Bob」と入力すると、大文字の B のために true が返されるようにします。

4

3 に答える 3

0

大文字と小文字を区別するオプション、または大文字と小文字を区別しないオプションが必要な場合は、 isPalindrome() 関数に IF ステートメントを追加します。

if ignorecase == True:
    word = word.lower()

完了すると、次のようになります。

import string
def reverse (word):
    newword = ''
    letterflag = -1
    for numletter in word:
        newword += word[letterflag]
        letterflag-=1
        s=newword
    s.upper()
    return newword

def isPalindrome(word, ignorecase=False):

    """
    >>> type(isPalindrome("bob"))
    <type 'bool'>
    >>> isPalindrome("abc")
    False
    >>> isPalindrome("bob")
    True
    >>> isPalindrome("a man a plan a canal, panama")
        True
    >>> isPalindrome("A man a plan a canal, Panama")
    False
    >>> isPalindrome("A man a plan a canal, Panama", ignorecase=True)
    True
    """
    if ignorecase == True:
        word = word.lower()
    word = word.replace(',', '')
    word = word.replace(' ', '')
    newword = reverse(word)
    if word == newword:
        return True
    else:
        return False

そのコードから、次のフィードバックが得られます。

isPalindrome('Bob', ignorecase=True)
Out[34]: True

isPalindrome('Bob')
Out[35]: False
于 2013-11-13T20:35:04.157 に答える
0

入力を常に小文字にするだけで、その問題を完全に回避できます。

word = str(word)
word = word.lower()
word = word.replace(',', '') # removes any commas from the string
newword = word[::-1] # reverse string
if word == newword:
    return True
else:
    return False
于 2013-11-13T18:50:00.700 に答える