Python中的随机性

Tyl*_*our 7 python random

我正在使用random.random()随机浮动(显然!).但我真正想做的是:

there's a 30% chance my app does this:
  pass
else:
  pass
Run Code Online (Sandbox Code Playgroud)

你能帮帮我解决这个问题吗?

hd1*_*hd1 12

if random.random() > 0.5: 
    # your app does this 
    pass
else: 
    # your app does that
    pass
Run Code Online (Sandbox Code Playgroud)

  • 使用`random()<x`可能更容易,因为`x`将直接对应于条件为真的概率. (5认同)
  • @TylerSeymour:是的,他使用.5意味着50%的几率; 将其更改为.3意味着30%的几率.大多数人会把它写成`random.random()<.3`,但当然`.3> random.random()`意思是完全相同的东西,答案是`random.random()> .7` . (2认同)

Ósc*_*pez 6

试试这个:

if random.randint(1, 10) in (1, 2, 3):
    print '30% chance'
else:
    print '70% chance'
Run Code Online (Sandbox Code Playgroud)

randint将产生一个介于1-10之间的数字,有30%的可能性介于1-3和70%之间,介于4-10之间

  • 当您的概率最好被描述为"1合2"或"1/3"时,这是一个更好的解决方案.当然对于有理数,你可以选择以任何方式描述它,所以`if random.randrange(10)<3`和`random.random()<.3`一样合理.这只是一个让你觉得更清楚的问题. (2认同)