Python random.randrange生成除了步骤之外的所有内容

时间:2017-11-15 15:17:54

标签: python python-3.x

使用以下代码时:

import random
sticks = 100
randomstep = random.randint(1, 6)
expertmarbles = random.randrange(1, sticks, 2**randomstep)

输出产生除步骤之外的所有内容,因此例如我希望从这些数字输出随机数:2,4,8,16,32,64。但它会输出除了这些数字之外的所有内容任何人都可以提供任何建议,我在这里使用变量的原因是因为棒的数量会减少。

2 个答案:

答案 0 :(得分:3)

您可以使用random.randrangedocs)代替使用random.choice

import random
min_power = 1
max_power = 6
print(random.choice([2**i for i in range(min_power, max_power + 1)]))

答案 1 :(得分:2)

你可以试试这个

def myRand(pow_min,pow_max): 
    return 2**random.randint(pow_min,pow_max)

我建议您使用此而不是random.choice,这需要您生成一个列表,这是不必要的。