【问题标题】:'int' object is not iterable no matter what I do [duplicate]无论我做什么,'int'对象都不可迭代[重复]
【发布时间】:2018-01-24 09:15:31
【问题描述】:

所以我正在尝试编写一个函数来确定您出生在一周中的哪一天。我正在尝试创建的功能之一如下所示:

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' object is not iterable'。任何帮助将不胜感激。

【问题讨论】:

  • for years in range(n):
  • 请提供示例输入和所需的输出。
  • 如果您查看内置的 calendardatetime 模块,您将节省自己的时间(并且可能会感到沮丧) - 例如 - 看起来您正在尝试重写 @987654325 @... 对于days_in_year = 366 if calendar.is_leap(x) else 365 并获得出生日期,例如:format(datetime(2002, 9, 3), '%A') -> Tuesday 就是你所需要的
  • 这一定是XYZ问题了。我也不确定for 循环应该做什么,一年中的日子看起来也很可疑......但总而言之,可以通过一些谷歌搜索找到'int' object is not iterable 的修复......

标签: python python-3.x iterable


【解决方案1】:

您必须将 for 循环更改为

for years in range(n):

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

【讨论】:

    【解决方案2】:

    扩展我的评论 - 您在那里使用的 for 循环 for years in n: 迭代 n 的每个元素。

    您将n 定义为n = x-1,它是一个整数,因此您不能对其进行迭代,因为它没有任何元素。您需要使用range(n) 生成一个列表

    例如:

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

    然后您可以对其进行迭代。希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      • 1970-01-01
      • 2018-10-22
      • 2020-03-07
      • 2013-08-02
      • 2012-06-21
      相关资源
      最近更新 更多