孟欣 发表于 2022-9-29 17:13:45

关于random.randrange(范围,x)x代表的啥?(用大白话QAQ)

在这个程序里,我把”x“取”1“不仅出现的是单数也会偶尔出现双数,取”2“的时候就一直是双数,取99的时候就弹出99
aaaa!!!!!why?

wp231957 发表于 2022-9-29 17:32:14

第三个参数是步长

hveagle 发表于 2022-9-29 20:02:33

本帖最后由 hveagle 于 2022-9-29 20:05 编辑

99是因为0-100里面只有99能被0和99整除,你没碰见0罢了
2是因为能被2整除的都是双数
1所有数都能除,就和
random.randint(0, 100)
一样了

hveagle 发表于 2022-9-29 20:05:14

>>> import random
>>> random.randrange(0, 200, 99)
0
>>> random.randrange(0, 200, 99)
198
>>> random.randrange(0, 200, 99)
0
>>> random.randrange(0, 200, 99)
99
>>> random.randrange(0, 200, 99)
198
>>> random.randrange(0, 200, 99)
99
>>>

asky533 发表于 2022-9-29 21:13:50

random.randrange(start, stop[, step])
从 range(start, stop, step) 返回一个随机选择的元素。 这相当于 choice(range(start, stop, step)) ,但实际上并没有构建一个 range 对象。

位置参数模式匹配 range() 。不应使用关键字参数,因为该函数可能以意外的方式使用它们。

在 3.2 版更改: randrange() 在生成均匀分布的值方面更为复杂。 以前它使用了像``int(random()*n)``这样的形式,它可以产生稍微不均匀的分布。

3.10 版后已移除: 非整数类型到相等整数的自动转换已被弃用。 目前 randrange(10.0) 会无损地转换为 randrange(10)。 在未来,这将引发 TypeError。

3.10 版后已移除: 针对非整数值例如 randrange(10.5) 或 randrange('10') 引发的异常将从 ValueError 修改为 TypeError。

官方文档上抄的
页: [1]
查看完整版本: 关于random.randrange(范围,x)x代表的啥?(用大白话QAQ)