这是我的代码:
import random
a = 10000
b = random.random()
c = 2
def random1(a,b,c):
z = a * b * c
print(z)
def random2():
for i in range(10):
random1(a,b,c)
random2()
我的输出有问题,因为函数random2()给了我十个完全相同的数字,例如:
10652.014111193188
10652.014111193188
10652.014111193188
10652.014111193188
10652.014111193188
10652.014111193188
10652.014111193188
10652.014111193188
10652.014111193188
10652.014111193188
错误在哪里?或者我不能使用在for循环中给出随机数的函数:/。一切都很好,当我循环公式而不是函数时,只有当函数处于for循环时才会出现问题。
答案 0 :(得分:1)
应该进行简单的更改,将b
绑定到random.random
,然后在转到b()
时调用random1
import random
a = 10000
b = random.random
c = 2
def random1(a,b,c):
z = a * b * c
print(z)
def random2():
for i in range(10):
# call b() here instead of b
random1(a,b(),c)
random2()
答案 1 :(得分:0)
b
永远不会更改,即使您使用随机值初始化它也是如此。 a
和c
都没有改变,但你可能期望这样。
答案 2 :(得分:0)
实际上你根本不应该把b放入随机函数中!如果您希望函数Random1创建一个随机数乘以a和c:
导入随机
a = 10000
# remarked: b = random.random()
c = 2
def random1(a,c):
b = random.random()
z = a * b * c
print(z)
def random2(): # I would call it testRandom1
for i in range(10):
random1(a ,c)
random2() # test random1 ten times.