Python 关于randint和if的问题 def rng(): 返回randint(1100)
是Python 关于randint和if的问题 def rng(): 返回randint(1100),python,python-3.x,if-statement,random,Python,Python 3.x,If Statement,Random,是 如果rng()如@jonsharpe所示,这两种方法都不起作用。第二种方法毫无意义(这不是和的工作原理),而第一种方法更有意义,但仍然失败。它将失败,因为它将计算三个不同的随机数,而不是一个。您需要执行以下操作: r = rng() if r <= x and r <= y and r <= z: #do something 虽然显然不是所有涉及r的比较都可以简化为1。这些代码片段都不起作用;一个选择三个不同的随机数,另一个只比较x。将返回值赋给一个变量,无需尝试
如果rng()如@jonsharpe所示,这两种方法都不起作用。第二种方法毫无意义(这不是和的工作原理),而第一种方法更有意义,但仍然失败。它将失败,因为它将计算三个不同的随机数,而不是一个。您需要执行以下操作:
r = rng()
if r <= x and r <= y and r <= z:
#do something
虽然显然不是所有涉及r
的比较都可以简化为1。这些代码片段都不起作用;一个选择三个不同的随机数,另一个只比较x。将返回值赋给一个变量,无需尝试并内联所有内容。那么怎么做呢?只需赋例如value=rng()
,然后在比较中使用value
。@jornsharpe这应该是一个答案,而不是注释。在第二种情况下,可能的重复项也应该使用r=rng()
,使用min
@tobias_k取决于OP这样做的目的。如果关键是让代码在的主体中,如果以特定的概率执行,这取决于x,y,z,
,并且r
没有进一步的作用,那么定义r
将是多余的。
if rng() <= min(x,y,z):
#do something