7.5.2乱数を生成するーーrandomモジュール

>>> import random
>>>
>>> print(random.random())
0.04692232975164723
>>> print(random.randint(0, 10))
2
>>> print(random.randrange(0, 10, 2))
2
>>> print(random.uniform(1, 20))
7.108838983664495
>>> print(random.gammavariate(15, 20))
372.11880637534944
  1. import random: random モジュールをインポートします。これにより、ランダムな数値や要素を生成するための関数が利用できるようになります。

  2. print(random.random()): random() 関数を使って、0以上1未満のランダムな浮動小数点数を生成します。結果は例えば 0.04692232975164723 のように表示されます。

  3. print(random.randint(0, 10)): randint(a, b) 関数を使って、範囲 a から b までの整数値の中からランダムに値を選択します。この例では0から10までの整数の中からランダムに値を選び、結果として 2 が表示されます。

  4. print(random.randrange(0, 10, 2)): randrange(start, stop, step) 関数を使って、範囲 start から stop までの整数値の中から step の間隔でランダムに値を選択します。この例では0から10までの偶数の中からランダムに値を選び、結果として 2 が表示されます。

  5. print(random.uniform(1, 20)): uniform(a, b) 関数を使って、範囲 a から b までのランダムな浮動小数点数を生成します。この例では1以上20以下の範囲からランダムな値を選び、結果として 7.108838983664495 のような浮動小数点数が表示されます。

  6. print(random.gammavariate(15, 20)): ガンマ分布に従うランダムな値を生成する gammavariate(alpha, beta) 関数を使って、パラメータ alphabeta を指定してランダムな値を生成します。この例では alpha が 15 で beta が 20 のガンマ分布に従うランダムな値を生成し、結果として 372.11880637534944 のような値が表示されます。

・リストから要素をランダムに取り出す
>>> import random
>>>
>>> data = ['大吉', '中吉', '小吉']
>>> print(random.choice(data, ))
中吉
>>> print(random.sample(data, 2))
['大吉', '小吉']
>>> print(random.choices(data, k = 10))
['小吉', '小吉', '小吉', '中吉', '大吉', '中吉', '大吉', '大吉', '中吉', '大吉']
>>> print(random.choices(data, weight=[1, 10, 1], k = 10))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Random.choices() got an unexpected keyword argument 'weight'
>>>
エラーがでて、パイソンのバージョンが古いといわれてんですが、まだ対処が分かりません

構文choicesメソッド
choices(population, weights=None, *, k=1)
population :対象のリスト
weights :重みづけ
k :取得する要素数


・リストを任意順序にシャッフルする
>>> import random
>>>
>>> data = ['大吉', '中吉', '小吉']
>>> random.shuffle(data)
>>> print(data)
['大吉', '中吉', '小吉']
>>> new_data = random.sample(data, len(data))
>>> print(data)
['大吉', '中吉', '小吉']
>>> print(new_data)
['中吉', '小吉', '大吉']
  • random.shuffle(data): random.shuffle() 関数は、リスト data の要素をランダムにシャッフルします。元のリストの要素の順序が変更されます。
  • print(data): シャッフル後のリスト data を出力します。要素の順序がランダムに変わっています。
  • new_data = random.sample(data, len(data)): random.sample() 関数は、リスト data から指定された数の要素をランダムに抽出して新しいリスト new_data を作成します。この場合、len(data) を指定しているため、元のリストと同じ要素数のランダムな順序で要素が抽出されます。
  • print(data): 元のリスト data を出力します。シャッフル前の状態と同じです。
  • print(new_data): ランダムに抽出された要素が格納された新しいリスト new_data を出力します。要素の順序がランダムになっています。

ちゃんとランダムになりました。 くじ引きとかに使われるんですかね?