1

そのフレーズの各単語を辞書のキーと照合することにより、辞書を使用してフレーズを翻訳しようとしています。

http://paste.org/62195

インタラクティブシェルを介してうまく翻訳できますが、実際のコードに関しては次のようになります。

def translate(dict):
    'dict ==> string, provides a translation of a typed phrase'
    string = 'Hello'
    phrase = input('Enter a phrase: ')
    if string in phrase:
         if string in dict:
            answer = phrase.replace(string, dict[string])
            return answer

文字列を何に設定すれば「こんにちは」以外のものがチェックされるかわかりません。

4

1 に答える 1

6

みんなが言ったように、それは部分的な単語に一致するので、置換は良い考えではありません。

リストを使用した回避策は次のとおりです。

def translate(translation_map):
    #use raw input and split the sentence into a list of words
    input_list = raw_input('Enter a phrase: ').split()
    output_list = []

    #iterate the input words and append translation
    #(or word if no translation) to the output
    for word in input_list:
        translation = translation_map.get(word)
        output_list.append(translation if translation else word)

    #convert output list back to string
    return ' '.join(output_list)

@TShepangが示唆しているように、変数名としてstringやdictなどの組み込み名を使用しないことをお勧めします。

于 2013-03-05T20:32:29.560 に答える