我一般对编程还是很陌生的,所以我尝试做这个函数 但是每次我叫它都会弹出相同的结果
def random():
if np.random.rand() > 30:
print("Big number")
elif np.random.rand() < 30:
print("Small number")
没有错误消息,只是np.random.rand()保留单个变量并且没有变化
答案 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()