私はCoderByteの「Python」の質問に取り組んでいました。時間は重要であるため、コードは実際には読みにくいかもしれませんが、非常に簡単です。私はあなたのアプローチに興味があります。私のコードはいくつかの単語で機能しますが、「sentence」でテストすると、私たちが話しているようにデバッグして、別の結果が得られます。私の考えにコメントしてください!
質問 :
関数LetterChanges(str)に、渡されたstrパラメーターを取得させ、次のアルゴリズムを使用して変更します。文字列内のすべての文字をアルファベットのそれに続く文字に置き換えます(つまり、cはdになり、zはaになります)。次に、この新しい文字列(a、e、i、o、u)のすべての母音を大文字にして、最後にこの変更された文字列を返します。下のボックスのパラメータテスト機能を使用して、さまざまな引数でコードをテストします。コード内で関数名を変更しないでください。関数の外にコードを配置しないでください。また、returnキーワードを使用して、関数内から回答を返します。
私のコード:
def LetterChanges(str):
a = map(chr, range(97, 123))
b = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
b.remove('a')
b.append('a')
c = dict(zip(a,b))
v = ['a', 'e', 'i', 'o', 'u']
k = str
for i in range(len(str)):
if str[i] in a:
k = k.replace(str[i], c[str[i]])
l = k
for i in range(len(k)):
if k[i] in v:
l = l.replace(k[i], k[i].upper())
print l
# this call is needed to test your function
# keep this when you submit your code
LetterChanges(str)
出力:
zddzst -> AEEAUU {wrong}!
sentence -> UfOUfOdf {wrong}!