MILKさんの「Pythonの正規表現の基本的な使い方」にあるのでご参照ください。概略でいうと「特定の文字列やパターンを判定する」という事です。具体的にやってみます。2ケタの数字23,24を取り出すことを考えてみましょう。正規表現は非常に多様な表現がありますが、ここでは「2ケタの数字の表現」のみに絞ります。2ケタの数字とは、「0~9までの数字」が「2つ並んだ」状態です。(厳密には、10の位が0の場合は2ケタの数字ではないですが、ここではこれも含めます。」これを表現するためには、以下の記号を使います。「{n}」→前の文字をn回繰り返しこれらを組み合わせると、「2ケタの数字」は「^\d{2}$」と表せます。xxxに正規表現、yyyに判定する対象を入れます。yyyがxxxの表現に合致していればTrue、合致していなければFalseとなります。一度、簡単に検証してみましょう。objectあれ、、エラーがでた・・・。エラーの内容を読むと、どうやら文字列strが求められています。考えると^\d{2}$も「’’」で囲っているので、文字列として扱っています。いうことは数字のままでは正規表現で判定できないようです。修正して再度やってみましょう。print(num)で結果はこうです。2324無事、2ケタの数字だけが出力されています。前置きが長くなりましたが、1ケタの数字を3つ、2ケタの数字を2つ、3ケタの数字を1つ用意して、この正規表現で判定すれば、「確率の重みづけ」を表現できますね。これを利用したいと思います。weights)(追記)終わったあとに、もっと良いやり方あるんじゃないかと思って調べると、当然ありました。重み)で行けるようです。choiceではなくchoice「s」です。(ここで30分囚われてしまった、、、)今回の場合はこんな感じです。(下で検証しますが、間違えています。#数字選択うわ、マジで簡単。print(door_choice)をつけて出力するとこうなります。['B']おっと、一筋縄ではいかないですね。choiceではリストの中の1要素を取り出していましたが、choice「s」ではリストつきのままです。=w)として使用するとn個の要素を取り出すことができるので、リストでかえって来た方が都合がよいということですね。