在 Python 中生成随机布尔值(真或假)
Generate a random Boolean (True or False) in Python
要生成随机布尔值:
- 使用该
random.getrandbits()
方法获取具有 1 个随机位的整数。 - 使用
bool()
该类将整数转换为布尔值。
主程序
import random # ✅ Generate random boolean result = bool(random.getrandbits(1)) print(result) # 👉️ False result = bool(random.getrandbits(1)) print(result) # 👉️ True # ---------------------------------- # ✅ Generate random boolean based on probability def bool_based_on_probability(probability=0.5): return random.random() < probability # 👇️ 75% probability to return True result = bool_based_on_probability(0.75) print(result) # 👉️ True # ---------------------------------- # ✅ Get a list of N random booleans random_boolean_list = random.choices([True, False], k=3) print(random_boolean_list) # 👉️ [True, True, False]
random.getrandbits
方法返回一个带有k
随机位
的非负 Python 整数。
我们将k
参数设置为1
,因此该方法返回的唯一可能值是0
和1
。
主程序
import random print(random.getrandbits(1)) # 👉️ 1 print(random.getrandbits(1)) # 👉️ 0 print(random.getrandbits(1)) # 👉️ 0
最后一步是使用bool()
该类将整数转换为布尔值。
主程序
import random result = bool(random.getrandbits(1)) print(result) # 👉️ False result = bool(random.getrandbits(1)) print(result) # 👉️ True
Converting 0
to a boolean returnsFalse
和 converting 1
to a boolean returns True
。
主程序
print(bool(0)) # 👉️ False print(bool(1)) # 👉️ True
您也可以使用该
random.choice()
方法生成随机布尔值,但该方法的性能稍差。主程序
import random random_bool = random.choice([True, False]) print(random_bool) # 👉️ False
random.choice方法接受
一个序列并从非空序列返回一个随机元素。
如果您需要根据概率生成随机布尔值,请使用该
random.random()
方法。
根据概率生成随机布尔值(真或假)
要根据概率生成随机布尔值:
- 使用
random.random()
方法获取从0
到的随机浮点数1
。 - 检查生成的值是否小于概率。
- 例如,
random.random() < 0.75
返回True
75% 的时间。
主程序
import random def bool_based_on_probability(probability=0.5): return random.random() < probability # 👇️ 75% probability to return True result = bool_based_on_probability(0.75) print(result) # 👉️ True # 👇️ 25% probability to return True result = bool_based_on_probability(0.25) print(result) # 👉️ False
random.random数返回 range 中的
下一个随机浮点数[0.0,1.0)
。
该方法可以返回0
,但它永远不会返回1
。
比较两个浮点数返回一个布尔值。
例如,如果您将probability
参数设置为0.75
,则该函数有
75%
机会返回True
。
如果将参数设置为1
,函数将始终返回True
。
在 Python 中生成多个随机布尔值的列表
使用该random.choices()
方法生成多个随机布尔值的列表,例如random.choices([True, False], k=3)
。该
random.choices()
方法返回k
从 iterable 中选择的元素的大小列表。
主程序
import random random_boolean_list = random.choices([True, False], k=3) print(random_boolean_list) # 👉️ [True, True, False] # 👇️ with probability (specify weights) random_boolean_list = random.choices( [True, False], k=3, weights=[75, 25] ) print(random_boolean_list) # 👉️ [True, True, False]
random.choices
方法返回一个大小列表,其中包含k
从提供的可替换迭代中选择的元素。
主程序
import random a_list = ['bobby', 'hadz', '.', 'com'] result = random.choices(a_list, k=3) print(result) # 👉️ ['hadz', 'hadz', 'bobby']
替换基本上意味着可以多次返回相同的元素。
如果您需要根据概率返回布尔值,请将weights
调用中的参数设置为random.choices()
.
主程序
import random random_boolean_list = random.choices( [True, False], k=3, weights=[75, 25] ) print(random_boolean_list) # 👉️ [True, True, False]
对该方法的调用有 75% 的机会返回True
值和 25% 的机会返回False
。