0
ord()
とchr()
の文字をASCII値に変換する関数と、その逆の関数を使用して、入力された文字が大文字か小文字かをチェックするラボを与えられました。私はその部分を削除しましたが、2番目の部分は文字列の大文字を再帰的に小文字に変更することです。文字列内の文字を再帰的に小文字に変更するにはどうすればよいですか?
など。動作するようになっていますかの:私はマッピング機能または何を使用する必要がある場合
>>> 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)
が、そのコードは明らかに正しくありません:
は、ここで私が持っているものです。私は間違って何をしていますか?
コードに「magic numbers」は避けてください。 'A' <=文字 '=' Z ''などの場合は、範囲内の文字がある場合は(65、91) ' – DyZ
ベースケースを確認してください。 – Iluvatar
@DYZ - OPは 'ord'と' chr'を使用する必要があります。つまり 'letter'は文字の整数表現です。 – TigerhawkT3