2017-08-16 97 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] 

然後你可以遍歷。希望有所幫助。

相關問題