为什么结果总是保持不变?

时间:2019-08-19 03:22:54

标签: python

我一般对编程还是很陌生的,所以我尝试做这个函数 但是每次我叫它都会弹出相同的结果

 def random():
     if np.random.rand() > 30:
         print("Big number")
     elif np.random.rand() < 30:
         print("Small number")

没有错误消息,只是np.random.rand()保留单个变量并且没有变化

3 个答案:

答案 0 :(得分:0)

所以这里的问题是np.random.rand()返回0-1之间的值(请参阅numpy文档)。如果要生成0-100之间的随机数,则可以将随机值乘以100或使用np.random.randint(LOW,HIGH)。

您还应该知道,不应该在if语句中使用np.random.rand作为条件语句的一部分,应该将值存储在变量中,并在条件语句中使用该变量。



    def random():
     val=np.random.rand() * 100
     if val > 30:
         print("Big number")
     else:
         print("Small number")

答案 1 :(得分:0)

使用randint检查小于或大于30的整数值

import numpy as np
def random():
     rand_num = np.random.randint(50) 
     print(rand_num)
     if rand_num > 30:
         print("Big number")
     elif rand_num < 30:
         print("Small number")
random()

答案 2 :(得分:0)

我假设30是您想要的范围的中间。 更好地使用random.randrange

import random


def r():
    """Choose a random item from range(start, stop[, step]).

    This fixes the problem with randint() which includes the
    endpoint; in Python this is usually not what you want.

    """
    if random.randrange(0, 60) > 30:
        print("Big number")
    else:
        print("Small number")


def main():
    for i in range(10):
        r()


if __name__ == '__main__':
    main()