2017-08-16 96 views
-1

所以我试图编写一个函数来确定一个函数,该函数确定您出生的每周的哪一天。有一个问题我想创建看起来像这样的功能:无论我做什么,'int'对象都不可迭代

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 

这将返回“类型错误:‘诠释’对象不是可迭代”不管我做什么。任何帮助,将不胜感激。

+5

'多年在范围(n):' – Stael

+0

请提供样本输入和所需的输出。 –

+1

如果您查看内置的'calendar'和'datetime'模块,您将节省自己的时间(可能会感到沮丧) - 例如 - 它看起来像您正在尝试重写'calendar.is_leap' ... for 'days_in_year = 366如果calendar.is_leap(x)else 365'并获得出生日,例如:'format(datetime(2002,9,3),'%A')' - >'Tuesday' all你需要 –

回答

0

你必须改变for循环

for years in range(n): 

范围()生成号的列表,通常使用具有用于循环遍历。

0

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

您将n定义为n = x-1这是一个整数,所以您不能迭代它,因为它没有任何元素。你需要生成使用range(n)

如列表:

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

然后你可以遍历。希望有所帮助。

相关问题