for循环中的函数

时间:2017-04-06 17:37:25

标签: python for-loop random

这是我的代码:

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循环时才会出现问题。

3 个答案:

答案 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永远不会更改,即使您使用随机值初始化它也是如此。 ac都没有改变,但你可能期望这样。

答案 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.