Pythonで指定した数を除外して乱数を生成する方法


Pythonのrandomモジュールのrandint関数を使用して乱数を生成する際に、特定の数を除外する方法について説明します。

方法1: ループを使用して除外する数を回避する 以下のコードでは、指定した数を除外するためにwhileループを使用しています。

import random
def generate_random_except(excluded_number, start, end):
    number = random.randint(start, end)
    while number == excluded_number:
        number = random.randint(start, end)
    return number
# 使用例
excluded_number = 3
start = 1
end = 10
random_number = generate_random_except(excluded_number, start, end)
print(random_number)

方法2: リストを使用して除外する数をフィルタリングする 以下のコードでは、指定した数を除外するためにリストを使用しています。

import random
def generate_random_except(excluded_number, start, end):
    numbers = list(range(start, end+1))
    numbers.remove(excluded_number)
    return random.choice(numbers)
# 使用例
excluded_number = 3
start = 1
end = 10
random_number = generate_random_except(excluded_number, start, end)
print(random_number)

いずれの方法でも、除外する数を指定し、乱数の範囲を指定することで、指定した数を除外した乱数を生成することができます。