0

前に述べたように、私は多肢選択式クイズを作ろうと取り組んでいます。クイズは、「答え」としてランダムに 3 つのキーを取得します。次に、クイズは選択された 3 つのキーの値を取得し、それを「質問」として使用します。random.sample を引数として使用して、ランダムに選択されたキー値から値を選択しようとしています。私のコードは以下の通りです:

import random

word_drills = {'class': 'Tell Python to make a new kind of thing.',
               'object': 'Two meanings: the most basic kind of thing, and any instance of some thing.',
               'instance': 'What you get when you tell Python to create a class.',
               'def': 'How you define a function inside a class.',
               'self': 'Inside the functions in a class, self is a variable for the instance/object being accessed.',
               'inheritance': 'The concept that one class can inherit traits from another class, much like you and your parents.',
               'composition': 'The concept that a class can be composed of other classes as parts, much like how a car has wheels.',
               'attribute': 'A property classes have that are from composition and are usually variables.',
               'is-a': 'A phrase to say that something inherits from another, as in a Salmon *** Fish',
               'has-a': 'A phrase to say that something is composed of other things or has a trait, as in a Salmon *** mouth.'}


def nodupchoice():
    key1, key2, key3 = random.sample(word_drills, 3)
    print "%s, %s, %s" % (key1, key2, key3)
    #print word_drills.random.sample[key1, key2, key3]
    #print word_drills[key1]
    #print word_drills[random.sample(key1, key2, key3)]


nodupchoice()

実際に私が望んでいた結果が得られると思ったことをコメントアウトしたことに気付くでしょう。残念ながら、それぞれがそうではありませんでした。ガイダンスの支援をいただければ幸いです。再度、感謝します。

アップデート

そのため、提供された新しい情報を組み込みました。ありがとうございました。これは私が思いついたものです:

import random

word_drills = {'class': 'Tell Python to make a new kind of thing.',
               'object': 'Two meanings: the most basic kind of thing, and any instance of some thing.',
               'instance': 'What you get when you tell Python to create a class.',
               'def': 'How you define a function inside a class.',
               'self': 'Inside the functions in a class, self is a variable for the instance/object being accessed.',
               'inheritance': 'The concept that one class can inherit traits from another class, much like you and your parents.',
               'composition': 'The concept that a class can be composed of other classes as parts, much like how a car has wheels.',
               'attribute': 'A property classes have that are from composition and are usually variables.',
               'is-a': 'A phrase to say that something inherits from another, as in a Salmon *** Fish',
               'has-a': 'A phrase to say that something is composed of other things or has a trait, as in a Salmon *** mouth.'}


def nodupchoice():
    # For loop that creates a list named keys. It grabs 3 random keys from the dictionary word_drills
    keys = [x for x in random.sample(word_drills, 3)]
    # User is presented with a question. A value from the previous randomly selected keys is selected as the 'question'
    print "Question: ", word_drills[random.choice(keys)]
    # Set the variables key1, key2, & key3 to the 3 keys in the list 'keys'
    key1, key2, key3 = keys[0], keys[1], keys[2]
    # User is presented with 3 choices.
    print "\n\n(a)%s   (b)%s   (c)%s" % (key1, key2, key3)
    selection = raw_input("> ")
    print selection

nodupchoice()

私が今解読しようとしている問題は次のようになります: 辞書 word_drills にあるものに対してユーザーの選択をチェックする方法。if/else を使用する予定でした。それが正しければ、それはあなたに通知します。そうでなければ、あなたは間違っていました。ただし、これにアプローチする方法がわかりません。皆様のご支援に改めて感謝申し上げます。

4

2 に答える 2

2

あなたがやりたかったことはこれだと思います:

print word_drills[random.choice([key1, key2, key3])]

これにより、ランダムにサンプリングされたキーの 1 つに属する値の 1 つが出力されます。

于 2012-08-18T22:38:42.533 に答える
1

random.choice()を使用してキーを選択してみてください。

keys = random.sample(word_drills, 3)
print keys
print word_drills[random.choice(keys)]

出力:

['has-a', 'attribute', 'class']
A phrase to say that something is composed of other things or has a trait, as in a Salmon *** mouth.
于 2012-08-18T22:45:23.447 に答える