英語の勉強(
証明 )のトピックは、habrで複数回提起されました。 彼女はさまざまな角度から見られました。 誰かが外国語を学ぶときに言葉を学ぶのはなぜかと書いた。 誰かが、単純なカードからノートブック全体に至るまで、非常に多くの方法を共有しました。 最後に、
LinguaLeoがあり
ます 。これは、追加料金なしで1日10語を学習できるすばらしいサービスです。 支払いたくない場合もありますが、外国語の謎と魅力を学ぶ若い生物にとっては、10語は非常に少ないようです。 そうすれば、おそらくこのスクリプトは役に立つでしょう。
GUIをファック!
いや 地獄ではなく、このタスクで。 必要なのは、単語を読み、翻訳を書き、Enterを押すだけです。 作業の非常に単純なメカニズム。 それでは、なぜこのtkinterのために緊張と強姦をするのでしょうか?
JSONは私たちを助けるために急いでいます
確かにアマチュアがいます。 JSONを使用しました。 XMLが好きな人。 データ構造は非常に単純です。
{ "catch, caught, caught":", , ", "fly, flew, flown":", " }
同様の2つの単語の「辞書」をファイルに保存します。たとえば、english.jsonを呼び出します。ロケールを再度構成しないように、Windows 866エンコードで保存します(UTF-8がLinuxに適していると確信しています)。
彼の閣下コード
まず、sysモジュールとrandomモジュールをインポートします。
import sys import random
次に、古典的なメイン関数を予期せずに定義します。 設計上、すぐに辞書が必要になります。辞書は、スクリプトの実行時にパラメーターで指定する必要があります。
def main(): try: wordict = eval(open(sys.argv[1]).read())
これで、wordict辞書ができました。 次に、辞書を通過する2つのモードを作成する必要があります。 1つ目は、スクリプトが英語の単語を提供し、その翻訳の1つで応答することです。 2番目のパスは正反対です-スクリプトはロシア語であり、英語であると言われます。 ここで辞書設計者が助けになります。
mode = raw_input("Choose mode:\n\t1:Word To Translation;\n\t2:Translation To Word.\n>> "); if mode == "2": wordict = {wordict[k]:k for k in wordict.keys()}
操作が完了すると、いくつかの行が残り、辞書全体で実行されます。 メイン関数内で記述できますが、別の関数を記述することをお勧めします。
def keysToValues(dic):
あとは、この関数をmainで実行してからmainを実行するだけです。
keysToValues(wordict) if __name__ == "__main__": main()
自由時間とこのスクリプトがある場合、夕方に最大50語(私は再試行していません)の英単語を学習することが判明しました。 最も退屈なことは、辞書に記入することです。 しかし、カードをコンパイルするのは面倒ではないと確信しています。
最終結果。
利便性を高めるために、すべてのコードを1か所にまとめました。 import sys import random def keysToValues(dic): wrong = 0 right = 0 keys = dic.keys() while True: tmpkey = random.choice(keys) print "{0}: {1}".format(len(keys), tmpkey)