2011-01-10 22 views
0
a = ['cat','dog'] 

random.choice(a) 

どのようにランダムな単語を選んで手紙を引き出すことができますか? 私は検索し、実験したことがありませんでしたが、答えは見つかりませんでした。ありがとう。 単語の手紙を入手する

私はランダムな文字を望ましくありません。 インスタンスの場合 私はそれを単語、猫を選びたいと思っています。 それから、誰かがc aかtのどちらかを推測するようにしたい。 ハングマンのような種類

+0

の操作を行います。

random.choice(random.choice(a)) 

かを、あなたは、ランダムに選択された単語の(例えば)最初の文字が必要な場合はあなたは無作為な手紙を引っ張りたいのですか固定指数で引っ張りたいですか – alexn

+2

実験を投稿してください。 –

+0

あなたが選んだランダム作品から無作為な手紙を印刷するのを止めるのは何ですか? –

答えて

5

最初に単語を選択すると、公開したものが使用されます。単語からセットを作成して、それに含まれる文字セットを取得できます。また、入力が単語の一部であるかどうかを確認し、残りの文字を保持することができます。 次の操作を実行できます。

chosen_word = random.choice(['cat', 'dog']) 
letters_set = set(chosen_word) 
while len(letters_set) > 0: 
    letter = raw_input() #make controls on this. 
    if letter in letters_set: 
     letters_set.remove(letter) 
     print "Good!" 
     print ''.join(map(lambda c: c in letters_set and '_' or c, chosen_word)) 
    else: 
     print "Bad Bad, try again!" 

希望します。

+1

文字列が同じ長さでない場合、これは文字を完全にランダムに選択しません(例えば '['a'、 '123456789']') – marcog

+0

を考えますが、同じ確率で単語を選択します単語内の各文字について最初に同じ確率を計算します。 各文字(すべての文字列を合わせて)が同じ確率になるようにするには、sukhbirの解決策を実行する必要があります。 –

+0

私が探していたことをSanSSに正確にありがとう。 – Tarrant

6

あなたは、ランダムに選択された単語からランダムな文字を選択する場合:

random.choice(a)[0] 
関連する問題