函数不会在python中修改变量

时间:2018-12-02 16:36:15

标签: python python-3.x

我创建了两个列表,a,b,其中包含10个随机数(从0到61),然后比较列表是否具有共同数字。

我将公用号码存储在单独的列表中。

如果列表中确实包含数字,则commonCount将上升,如果列表为空,则noCommonCount将上升。

但是当我要在对函数进行rand十次后打印计数时,它会打印出0。

我不知道为什么,因为我在函数外部声明了变量commonCount和noCommonCount。

import random

noCommonCount = 0
commonCount = 0

def list_overlap():
    a = []
    b = []

    count = 0

    while count < 10:
        count = count + 1
        a.append(random.randint(0, 61))
        b.append(random.randint(0, 61))    

    commonNumbers = []

    for i in a:
        if i in b:
            if i not in commonNumbers:
                commonNumbers.append(i)

    if not commonNumbers:
        noCommonCount + 1
    else:
        commonCount + 1


functionCount = 0

while functionCount < 10:
    functionCount = functionCount + 1
    list_overlap()

print(noCommonCount)
print(commonCount)

1 个答案:

答案 0 :(得分:2)

对于修改在外部作用域上声明的变量的函数,还需要以下形式的声明

global variable_name

在函数中是必需的(通常直接在函数声明之后。