如何递归地将字母中的字母更改为小写?

时间:2016-12-11 00:39:46

标签: python recursion

我已经获得了一个实验室,使用ord()chr()函数将字母转换为ASCII值,反之亦然,以检查输入的字母是大写还是小写。我得到了那个部分,但第二部分是将字符串中的大写字母递归地改为小写。

E.g。它应该如何工作:

>>> lowercase("Hello")
hello

这有点令人困惑,我不知道是否必须使用映射功能或什么。

这就是我所拥有的:

def lowercase(word): #accepts a string
    if word == []: #base case
        return []
    else:
        letter = ord(word[0])      #converts first character to ASCII Value
        if letter in range(65, 91):      #Checks if character is uppercase (ASCII uppercase Values)
            return chr(letter + 32) + lowercase(word[1:])      #converts letter to lower case by adding 32
        elif letter in range(97, 123):     #if letter is lowercase return the letter (ASCII lowercase Values)
            return chr(letter) + lowercase(word[1:])

WORD = str(raw_input("Enter a word: "))
print lowercase(WORD)

我知道它应该如何工作,但代码显然不正确。我做错了什么?

1 个答案:

答案 0 :(得分:0)

您的基本情况不正确。您应检查空字符串而不是空列表。

if word == '': #base case
    return ''