我已经获得了一个实验室,使用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)
我知道它应该如何工作,但代码显然不正确。我做错了什么?
答案 0 :(得分:0)
您的基本情况不正确。您应检查空字符串而不是空列表。
if word == '': #base case
return ''