Python 3.6.4中randint函数结合if/else使用异常求助
排查Python randint输出异常问题
看起来你遇到的问题很明确——只有随机数生成0时才有输出,其他情况没反应,我来帮你分析下大概率的原因和解决办法:
最可能的问题:缺少其他数字的输出分支
从你描述的概率(1/4)来看,你应该是用randint(0, 3)生成了0-3之间的随机整数,但你的代码里只写了针对num == 0的判断逻辑,其他数字没有对应的输出语句,自然就没反应啦。
举个反例,你之前的代码大概是这样的:
import random num = random.randint(0, 3) if num == 0: print("Zero") # 这里没有处理1、2、3的情况
修复方案:补全所有分支或添加兜底逻辑
你可以针对每个数字写对应的判断,也可以用else来兜底所有非0的情况,具体看你的需求:
方案1:针对每个数字单独处理
import random random_num = random.randint(0, 3) if random_num == 0: print("Zero") elif random_num == 1: print("One") elif random_num == 2: print("Two") elif random_num == 3: print("Three")
方案2:用else兜底其他情况
如果只需要区分0和非0,或者不想逐个写判断,可以这样:
import random random_num = random.randint(0, 3) if random_num == 0: print("Zero") else: print(f"Got number: {random_num}") # 这里可以替换成你需要的其他响应
额外检查点
- 确认你用的是**比较运算符
==**而不是赋值运算符=,不过既然0的情况能正常输出,这个概率不大,但还是可以检查下 - 确认
randint的参数范围是否正确,比如randint(a, b)会生成包含a和b的整数,所以如果是1/4概率,范围应该是0到3(共4个数字)
内容的提问来源于stack exchange,提问作者PtrW
相关产品推荐
相关产品推荐

