0

私の小さないとこが勉強するために使用する Python ベースの語彙チェッカーを作成しようとしています。プログラムの目的は単語を表示することであり、定義を入力してチェックする必要があります。これを行う最善の方法は配列リストを使用することかどうか疑問に思っていました:

vocab = ['Python','OSX']
definition = ['programming language','operating system']

これが最善の方法ですか?もしそうなら、どうすればプログラムに語彙をランダムに表示させ、定義をチェックさせることができますか。どんな助けでも大歓迎です。君たちありがとう。

Ok。これが私がこれまでに持っているものです.... #ロシア語翻訳プログラム

import os
import random

#Asks users if they want to add more vocabulary
word_adder=raw_input("Add more words? If yes, press 1: ")
with open("Russian_study.txt","a") as f:
while word_adder=="1":
    word=raw_input("Enter word: ")
    translation=raw_input("Word translation: ")
    f.write("'{0}':{1},".format(word,translation))
    word_adder=raw_input("Add another word? If yes, press 1: ")

#Checks to see if file exists, if not one is created
with open("Russian_study.txt","a") as f:
pass

os.system('clear')
print("Begin Quiz")

#Begin testing user
with open("Russian_study.txt","r") as f:
from random import choice
question = choice(list(f))
result = raw_input('{0} is '.format(question))
print('Correct' if result==f[question] else ':(')

ただし、私の出力は

Begin Quiz
'Один':'One', is 

Один のみを表示し、ユーザー入力を 1 つに対してチェックするにはどうすればよいですか?

4

2 に答える 2

3

辞書を使う:

d={'Python':'programming language', 'OSX':'operating system'}

from random import choice
q = choice(list(d))
res = input('{0} is:'.format(q))
print('yay!' if res == d[q] else ':(')

[python < 3.0 を使用している場合は、raw_input()代わりに使用してinput()ください]

ファイルから読み書きする最も簡単な (そして安全ではない!) 方法:

with open('questions.txt', 'w') as f:
    f.write(repr(d))

「questions.txt」には次の行があります。

`{'Python':'programming language', 'OSX':'operating system'}`

だからそれを読むためにあなたはできる

with open('questions.txt') as f:
    q=eval(f.read())

q と d は等しくなります。「questions.txt」には悪意のあるコードが含まれている可能性があるため、「実際の」コードにはこのメソッドを使用しないでください。

于 2013-05-08T02:01:39.133 に答える
0

1) random.choice() を使用して、語彙リスト (または辞書の keys()) から要素をランダムに選択できます。

2) 答えが定義に十分近いかどうかを判断するのは難しい。回答文字列で特定のキーワードを検索するだけです。または、もっと複雑にしたい場合は、2 つの文字列間のレーベンシュタイン距離などを計算できます。ここで L 距離について読むことができます: http://en.wikipedia.org/wiki/Levenshtein%5Fdistance。また、L距離を計算するためのPythonレシピがオンラインにあります。

于 2013-05-08T02:03:53.803 に答える