琴葉茜

今回は「ランダム」について紹介するね!

解説画像1
琴葉茜

サイコロとかじゃんけんとかガチャみたいな不確定要素が入ったプログラムを作れるようになるから覚えとこう!

琴葉葵

クラスの係を自動で決める仕組みとかも作れそう!

琴葉茜

そういう使い方も良さそうだね!
じゃあ早速、できること一覧を見てみようか

関数説明使用場面
.random()0以上1未満のランダムな小数を返す確率、割合の処理random.random()
.randint(a, b)aからbまでの整数をランダムに返す(両端を含む)サイコロ、くじ引きrandom.randint(1, 6)
.randrange(start, stop[, step])range()のような整数列からランダムに1つ返す偶数・奇数などの間引きくじrandom.randrange(0, 10, 2)
.choice(seq)シーケンスから1つをランダムに選ぶ色選び、キャラ選びrandom.choice(["赤", "青", "黄"])
.choices(seq, k=1)重複ありでk個ランダムに選ぶガチャ、複数選択random.choices(["A", "B", "C"], k=2)
.sample(seq, k)重複なしでk個ランダムに選ぶチーム分け、抽選random.sample(range(1, 11), 3)
.shuffle(seq)シーケンスの順番をシャッフルトランプ、並び順決めrandom.shuffle(cards)
.uniform(a, b)a以上b以下の小数をランダムに返すランダムな時間・距離などrandom.uniform(1.5, 5.0)
.seed(x)ランダムの結果を再現可能にする結果の固定、デバッグrandom.seed(42)
← 横にスクロールして確認しよう! →
琴葉茜

ちなみに、「.uniform(a, b)」や「.randint(a, b)」とかは最大値である「b」も含むけど、「.random()」については最大値である「1」を含まないって違いがあるから注意してね

琴葉葵

意外と種類が多かった...!!
数字以外にもランダムに出したりできるんだね

琴葉茜

とりあえず、どんな感じでプログラムが動くのか見てみよう!

解説画像2
琴葉葵

ちゃんと出てくる数字が変わってるね!!

琴葉葵

ところで、表を見た感じ数字以外もランダムに出すこともできるんだね

琴葉茜

そうだね!例えば「.choice()」は配列や文字列から1つだけランダムで選択できるんだよ
まぁ「.randint()」を使えるようになれば、他のランダムの仕組みを再現はできるんだけどね

解説画像3
琴葉葵

ホントだ...!

琴葉茜

それでも、覚えておけばプログラムもシンプルで見やすくなるし処理も早くなるからちょっとでも覚えておくと良いよ!

琴葉葵

分かった!