如何基于随机范围变量设置随机值?解决randint空范围报错
问题原因
你遇到的ValueError是因为randint(a, b)要求第一个参数必须小于等于第二个参数,但你生成的a(1-99)和b(2-100)完全有可能出现a > b的情况(比如a=99,b=2),这时候randint的范围是空的,自然会触发报错。
解决方法
有两种简单的修复方式:
方法一:动态调整randint的参数
不管a和b谁大谁小,用min(a,b)和max(a,b)来确定randint的上下限,确保范围始终有效:
from random import randint a = randint(1, 99) b = randint(2, 100) number = randint(min(a, b), max(a, b)) print(number)
方法二:从根源保证a ≤ b
生成b的时候直接以a为下限,从根源上避免a大于b的情况:
from random import randint a = randint(1, 99) b = randint(a, 100) # b的取值范围设为a到100,确保b ≥ a number = randint(a, b) print(number)
两种方法都能解决问题,可按需选择:如果需要保留a和b可能出现a>b的场景,选方法一;如果只需要a≤b的情况,方法二更直接高效。
内容的提问来源于stack exchange,提问作者henryCoding
相关产品推荐
相关产品推荐

