2016-03-28 6 views
1

私はrandom.samplerandom.choiceを使って簡単なゲームを作ろうとしています。 私がしたいことは、candidateWordsリスト(このリストは100ワード)から無作為に8ワードを得て、無作為に1ワードを選択して回答にすることです。random.sampleとrandom.choiceの使用方法

は今forループがcandidateWordsリストからすべての私の言葉を示していると

one = random.choice(candidateWords) 

で8つのワードから選ばれた単語を選んでいません。私は最初に8単語を生成することができませんでしたので、なぜこれが適切に動作していないのか分かります。

+2

8だけ必要な場合は、なぜ 'len(candidateWords)'を '.sample'に渡すのですか?そして、なぜあなたは短いリストではなく、フルレングスのリストの中から「1つ」を選ぶのですか? – jonrsharpe

+0

こんにちは、返信いただきありがとうございます。私は、len()の代わりに8をタイプすると、リストの 'index、item(enumerate(random.sample(candidateWords、8))の項目から8ワードを得ることができます: を選択し、その1つの言葉が8つの選択肢からの答えになるためです。 – John

答えて

1

プログラムのフローに従って、一度に1つのステートメントを実行する必要があります。まず8語のサンプルを作成し、そのうちの1つを選択します。

import random 
candidateWords = [...] 

def wordlist(words): 
    for index, item in enumerate(words): 
     print(index, ") ", item, sep='') 

available_words = random.sample(candidateWords, 8) 
one = random.choice(available_words) 

print("Welcome to the Guess-The-Word Game.\nThe Password is one of these words:") 
wordlist(available_words) 
print(one) 
+0

こんにちはdsh、私はあなたが私のために大当たりを打ったと思う! これは私がやろうとしていたものです。私はプログラミングに慣れていないので、まだ流れを完全に理解することはできませんが、あなたのコードを読んでから、あなたがしたことを理解することができます。どうもありがとうございました。 – John

+0

リストを作成する、関数を定義する、関数を呼び出して名前に結果を代入する、関数を呼び出して結果を名前に代入する、メッセージを出力する、関数を呼び出す、関数を呼び出す引数を使ってアイテムを出力し、関数から戻り、オブジェクトを出力します。関数呼び出しとは別に、文は上から下に実行されます。割り当てに注意を払うと、これらは名前が示すものを変更します。 – dsh

関連する問題