我在与randint()和randrange()相关的python中遇到此错误

问题描述 投票:0回答:1

我的代码应该创建一个随机字符串,一个填充有随机数字和字符串的数组以及一个随机整数。这是我的代码:

from random import randint, randrange
x = randint(1, randrange(1, 200))
f = [randint(1, randrange(1, 200)), randint(1, randrange(1, 200)), randint(1, randrange(1, 200)), str(randint(1, randrange(1, 200)))]
b = 5

这里是错误:

Traceback (most recent call last):
  File "main.py", line 6, in <module>
    f = [randint(1, randrange(1, 10)), randint(1, randrange(1, 56)), randint(1, randrange(1, 7)), str(randint(150, randrange(1, 200)))]
  File "/usr/local/lib/python3.6/random.py", line 221, in randint
    return self.randrange(a, b+1)
  File "/usr/local/lib/python3.6/random.py", line 199, in randrange
    raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
ValueError: empty range for randrange() (150,39, -111)
python valueerror
1个回答
2
投票

str(randint(150, randrange(1, 200)))可以指定一个空范围。

[ValueError: empty range for randrange() (150,39, -111) 150> 39,由于您的起始值高于停止值,因此它是一个空范围。

如果您在randrange()中有有效范围,例如randint(150, randrange(150, 200))

您将获得正确的答复:151

https://docs.python.org/3/library/random.html#functions-for-integers

© www.soinside.com 2019 - 2024. All rights reserved.