1

Codecademy pig latin コンバーターを拡張して、単一の単語ではなく文を受け入れ、文の各単語を変換できるようにしようとしています。私が持っているコードは次のとおりです。

pyg = 'ay'

pyg_input = raw_input("Please enter a sentence: ")
print

if len(pyg_input) > 0 and pyg_input.isalpha():
    lwr_input = pyg_input.lower()
    lst = lwr_input.split()
    for item in lst:
        frst = lst[item][0]
        if frst == 'a' or frst == 'e' or frst == 'i' or frst == 'o' or frst == 'u':
            lst[item] = lst[item] + pyg
        else:
            lst[item] = lst[item][1:len(lst[item]) + frst + pyg
    print ' '.join(lst)

何が悪いのかわからないので、助けていただければ幸いです。ありがとう

4

2 に答える 2

3
  • 文にはアルファベット以外 (スペースなど) を含めることができます: そのため pyg_input.isalpha() は False を返します:
  • lst[item]各キャラクターへのアクセスに使用しています。代わりに を使用しますitem
  • リストを反復している間はリストを更新できません。次のコードでは、 という別のリストを使用しましたlatin
  • あなたのコードには、次の行に SyntaxError があります (閉じ括弧なし):

    lst[item][1:len(lst[item])
    
  • 次のコードは完全ではありません。たとえば、、、などの非アルファベットを除外する必要があり,ます.


pyg = 'ay'

pyg_input = raw_input("Please enter a sentence: ")
print

if len(pyg_input) > 0:# and pyg_input.isalpha():
    lwr_input = pyg_input.lower()
    lst = lwr_input.split()
    latin = []
    for item in lst:
        frst = item[0]
        if frst in 'aeiou':
            item = item + pyg
        else:
            item = item[1:] + frst + pyg
        latin.append(item)
    print ' '.join(latin)
于 2013-07-28T12:34:11.387 に答える