Pythonのrandomモジュールを使うと条件範囲などを指定して乱数を発生させることができます。
ここでは、以上・以下など範囲を指定した乱数の発生方法について各パターンごとにまとめています。
整数
①より小さい範囲(randrange)
範囲指定でより小さいを指定。random.randrange(初期値, 終わり値, ステップ)
▼終わり値のみ指定
引数1つの場合は、終わりの値(より小さい)を指定。
print(random.randrange(1))
print(random.randrange(10))
print(random.randrange(10000))
#出力
0
4
5310
・引数が1の場合は、該当する整数は0のみ。
・10の場合は、0~9
・マイナスは指定できない
print(random.randrange(-10))
#出力
# ValueError: empty range for randrange()
▼初期値と終わり値のみ指定
引数2つの場合は、A以上、Bより小さいとなる。
└ 初期値は範囲に含む
└ マイナスの範囲も指定できる
print(random.randrange(5,10))
print(random.randrange(-5,10))
print(random.randrange(-5,-1))
#出力
5
3
-5
▼初期値、終わり値、ステップを指定
引数3つの場合は、A以上、Bより小さい数値の中で、ステップに該当するもののみとなる。
└ 初期値は範囲に含む
└ マイナスも指定できる
print(random.randrange(6,10,2))
print(random.randrange(-6,10,2))
print(random.randrange(-6,-10,-2))
#出力
8
0
-6
ステップが範囲外の場合はエラー
print(random.randrange(-6,-10,2))
print(random.randrange(6,10,-2))
#出力
# ValueError: empty range for randrange()
②以上、以下(randint)
random.randint(初期値, 終わり値)
└ 引数の指定は2つのみ
└ ステップは指定できない
└ マイナスの範囲も指定できる
print(random.randint(6,10))
print(random.randint(-6,10))
#出力
7
-5
▼ステップは指定できない
print(random.randint(6,10,2))
#出力
TypeError: randint() takes 3 positional arguments but 4 were given
小数点
①0より大きく、1より小さい範囲(random)
random.random()
└ 引数不要
print(random.random())
#出力
0.006672554597154434
▼引数を渡すとエラー
print(random.random(3))
#出力
TypeError: random() takes no arguments (1 given)
②範囲指定(uniform)
random.uniform(初期値, 終わり値)
└ 以上、以下(含む)
└ マイナスもOK
└ 初期値と終わり値は入れ替え可能(自動判断)
print(random.uniform(1,3))
print(random.uniform(3,1))
print(random.uniform(-3,-1))
print(random.uniform(-1,-3))
#出力
2.5435117820109165
1.0971805105781995
-1.8504872730735842
-2.7854383306809494
範囲を別で指定(choice)
random.choice()
└ マイナスの数値も指定可能
└ 少数点も指定可能
x = range(10)
y = [1, 6]
z = [1.1, 6.7]
w = range(-20, -4)
v = [-2, -7]
print(random.choice([3,5,6,8]))
print(random.choice(x))
print(random.choice(y))
print(random.choice(z))
print(random.choice(w))
print(random.choice(v))
#出力
8
5
1
6.7
-10
-7
公式ページはこちら