如何在if语句中实现80%的执行概率?
实现80%概率执行的if语句
要实现每次循环中if分支有80%概率被执行,核心是借助随机数生成器控制分支走向。你的原代码问题在于z只赋值一次,会导致循环全程输出相同结果,无法实现每次独立的概率判断。以下是两种完善方案:
方案1:用random.random()直接判断
import random i = 0 while i < 10: # 生成0-1之间的随机浮点数,小于0.8的概率为80% if random.random() < 0.8: print(True) else: print(False) i += 1
方案2:用random.choices()指定权重
import random i = 0 while i < 10: # 按80%/20%的权重随机选择True或False z = random.choices([True, False], weights=[80, 20])[0] if z: print(True) else: print(False) i += 1
关键说明
- 必须先导入Python内置的
random模块,用于生成符合概率要求的随机结果。 - 一定要在每次循环内部生成随机值,才能保证每次迭代都独立遵循80%的概率规则。如果只在循环外生成一次
z,循环会全程输出同一个结果,不符合需求。
内容的提问来源于stack exchange,提问作者luscgu00
相关产品推荐
相关产品推荐

