原文链接: http://www.juzicode.com/python-error-random-randrange-non-unit-step-argument-supplied/
错误提示:
使用random.randrange()函数时提示:Non-unit step argument supplied.
#juzicode.com / vx公众号:桔子code
import random
num = random.randrange(900,100)
print(num)
==========运行结果:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-53-d15ee436301c> in <module>
1 #juzicode.com / vx公众号:桔子code
2 import random
----> 3 num = random.randrange(900,100)
4 print(num)
d:\python\python38\lib\random.py in randrange(self, start, stop, step, _int)
224 return istart + self._randbelow(width)
225 if step == 1:
--> 226 raise ValueError("empty range for randrange() (%d, %d, %d)" % (istart, istop, width))
227
228 # Non-unit step argument supplied.
ValueError: empty range for randrange() (900, 100, -800)
错误原因:
1、该例中random.randrange()函数虽然提示没有提供第3个步长参数:Non-unit step argument supplied,但是实际错误是第1个参数大于第2个参数导致的,需要修正该错误。
解决方法:
1、修改random.randrange(900,100)为random.randrange(100,900)保证第1个参数小于第2个参数,修改后还可以在第3个参数上使用步长参数:
#juzicode.com / vx公众号:桔子code
import random
num = random.randrange(100,900)
print(num)
num = random.randrange(100,900,100)
print(num)
==========运行结果:
551
100
扩展内容:
如果本文还没有完全解决你的疑惑,你也可以在微信公众号“桔子code”后台给我留言,欢迎一起探讨交流。