You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何执行Python代码时出现TypeError: 'int' object is not iterable错误?

错误原因分析

核心问题

你遇到的TypeError: 'int' object is not iterable错误,根源在于**oddNumbers函数返回单个整数,而后续代码试图将其当作可迭代对象处理**。

具体细节

  1. 先看oddNumbers函数的逻辑:

    def oddNumbers(l, r):
        for i in range(l,r):
            if(i%2!=0):
                return(i)
    

    这个函数在循环中找到第一个奇数后,立刻用return(i)返回该整数,函数直接终止,不会继续查找后续的奇数。因此result变量最终是单个整数,而非包含所有奇数的可迭代序列(比如列表)。

  2. 再看报错的代码行'\n'.join(map(str, result)):

    • map(str, result)要求result是可迭代对象(如列表、元组),但这里result是整数,整数不支持迭代,直接触发TypeError。
    • join方法同样需要传入字符串组成的可迭代序列,无法接受单个整数。

修复方案

需要让oddNumbers函数返回所有符合条件的奇数组成的可迭代对象,以下两种方式可选:

方式1:收集所有奇数到列表后返回

def oddNumbers(l, r):
    odds = []
    # 改成r+1,因为range是左闭右开,原代码会漏掉r值
    for i in range(l, r+1):
        if i % 2 != 0:
            odds.append(i)
    return odds

方式2:用生成器(更节省内存)

def oddNumbers(l, r):
    # 改成r+1,避免漏掉r值
    for i in range(l, r+1):
        if i % 2 != 0:
            yield i

内容的提问来源于stack exchange,提问作者Gaddipalli Vennela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 23:41:08