是什么导致此迭代语法错误? [关闭]

问题描述 投票:-1回答:1

我在'j = j + 1'行中收到无效的语法错误。即使我尝试删除此行,它也说行“ for list1中的k:”无效。知道为什么吗?因为该分配需要大量的迭代,所以我认为无法删除它,但是该行没有问题。

供参考,分配如下:给一个房间中的n个人一组,两个或两个以上有相同生日的概率是多少?可以通过仿真确定该问题的答案。使用提供给您的启动模板,完成名为calc生日概率的函数,该函数将n作为输入n,并返回n个人中有两个或两个以上人具有相同生日的概率。为此,该函数应创建一个大小为n的列表,并随机生成n个生日,范围在1到365之间(包括端点1和365)。然后,该函数应检查n个生日中是否有相同的。函数应执行此实验106次,并计算两个或多个人具有相同生日的时间比例。

import random

def calc_birthday_probability (num_people):

random.seed (2020) # Don't change this value
num_trials = 2
list1 = []
repeats = 0
for i in range(0,num_trials+1):

    for j in range (0,num_people+1):
        (list1.append(random.randint (1,365))
        j = j+1

    for k in list1:
        if list1.count(k)>1:
            repeats +=1
            k = k+1
        else:
            repeats = repeats+0
    del list1[:]
    i = i+1
print(repeats)

prob = repeats/(num_trials*num_people)


return prob


print(calc_birthday_probability(2))

'''

python for-loop syntax-error
1个回答
0
投票

您的电话

(list1.append(random.randint (1,365))

以一个从未关闭的括号开始,抬起了SyntaxError。您的代码应为:

list1.append(random.randint (1,365))
© www.soinside.com 2019 - 2024. All rights reserved.