无论我做什么,'int'对象都不可迭代

时间:2017-08-16 09:32:48

标签: python python-3.x iterable

所以我正在尝试编写一个函数来确定你出生的星期几。我正在尝试创建的其中一个功能如下:

def days_in_year(x):
    y = 0
    n = x-1
    for years in n:
        if years % 4 == 0:
            y = y + 3
        elif y % 4 != 0:
            y = y + 1
    return y

这会返回'TypeError:'int'对象不可迭代',无论我做什么。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您必须将for循环更改为

for years in range(n):

range()生成一个数字列表,通常用于迭代for循环。

答案 1 :(得分:0)

展开我的评论 - 您在for循环使用的for years in n:循环遍历n的每个元素。

您将n定义为n = x-1这是一个整数,因此您无法迭代它,因为它没有任何元素。您需要使用range(n)

生成列表

例如:

range(5)
[0, 1, 2, 3, 4]

然后你可以迭代。希望有所帮助。