25 Locker问题-无法弄清楚我的代码出了什么问题

时间:2019-08-25 16:46:40

标签: python function

以下内容来自ProofWiki(对数字进行了少许修改):

有一所学校,有25名学生,并相应地有25个储物柜,所有储物柜都是从封闭处开始的。第一个学生打开每个储物柜。第二个学生从第二个开始关闭所有其他储物柜。第三个学生从第三个开始更改每个第三个储物柜的状态。即,如果储物柜是打开的,则将其关闭,如果储物柜是关闭的,则将其打开。直到所有25名学生都通过储物柜之前,这一过程一直持续到现在。第25名学生完成后,哪些储物柜是打开的,哪些是储物柜是关闭的?

我已经知道答案是所有完美的平方,并且我理解为什么。我的目标是尝试使用代码来解决问题(我是编码的新手),但我不知道出了什么问题。

代码如下:

for a in range (1,26):
    count_factor(a) == 0

def count_factor(a):
    for a in range (1,26):
        for b in range (1,26):
            if b%a == 0:
                count_factor(a) += 1

total = 0

for a in range (1,26):
    if count_factor(a)%2 == 1:
        total = total + 1

print (total)

预期输出应该仅为10。但是,它表示存在语法错误,并且不能将其分配给on上的函数调用

count_factor(a) += 1

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

语句count_factor(a) += 1没有任何意义。

展开+=运算符时,等效于:

count_factor(a) = count_factor(a) + 1

您要为分配给一个没有意义的功能。