言語の翻訳プログラム
辞書はPythonの中でも重要なものの1つであり、多くのプログラムを書く際に、その手間を大きく軽減する。例えば、以下に示すコードのような言語プログラム(翻訳結果はひどい出来だが)を書くのに辞書が用いられる。
■コード
EtoF={'bread':'pain','wine':'vin','with':'avec','I':'Je','eat':'mange','drink':'bois','John':'Jean','friends':'amis','and':'et','of':'du','red':'rouge'}
FtoE={'pain':'bread','vin':'wine','avec':'with','Je':'I','mange':'eat','bois':'drink','Jean':'John','amis':'friends','et':'and','du':'of','rouge':'red'}
dicts={'English to French':EtoF,'French to English':FtoE}
def translateWord(word,dictionary):
if word in dictionary.keys():
return dictionary[word]
elif word != '':
return '"'+word+'"'
return word
def translate(phrase,dicts,direction):
UCLetters='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
LCLetters='abcdefghijklmnopqrstuvwxyz'
letters=UCLetters+LCLetters
dictionary=dicts[direction]
translation=''
word=''
for c in phrase:
if c in letters:
word=word+c
else:
translation=translation\
+translateWord(word,dictionary)+c
word=''
return translation+''+translateWord(word,dictionary)
print(translate('I drink good red wine, and eat bread.',dicts,'English to French'))
print(translate('Je bois du vin rouge.',dicts,'French to English'))
■出力
Je bois "good" rouge vin, et mange pain.
I drink of wine red.
この記事が気に入ったらサポートをしてみませんか?