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

Python 3.6 TypeError: 'int'对象不可迭代:含义及修复方法

解决TypeError: 'int' object is not iterable错误及幂计算代码修复

错误含义解释

TypeError: 'int' object is not iterable 这个错误很好理解:你试图对一个整数(int)对象执行迭代操作(比如用for循环遍历它),但整数是单个独立的值,没有可被逐个取出的元素,所以Python会抛出这个错误来提示你操作不合法。

你的代码问题分析

先看你写的函数:

def power_of_n(power,n):
    ans = n*n
    for i in power:
        ans = ans*n
    return ans

你想计算n的power次方(比如12的立方),但这里有两个明显的问题:

  1. 迭代对象错误:你传入的power是整数(比如立方对应的3),但for i in power试图遍历这个整数,这直接触发了上面的TypeError。
  2. 计算逻辑偏差:初始ans = n*n已经是n的平方了,再循环power次乘n,最终结果会是n^(2+power),完全不是你想要的n^power。

修复方案

这里给你两种实用的修复方式:

方案1:修正循环逻辑(手动实现幂运算)

把遍历整数改成遍历range(power)生成的序列,同时调整初始值为1,确保循环power次后得到正确的幂:

def power_of_n(power, n):
    ans = 1
    # 循环power次,每次将ans乘以n
    for _ in range(power):
        ans *= n
    return ans

测试一下:power_of_n(3,12)会返回1728,正好是12的立方。

方案2:使用Python内置幂运算符(更简洁高效)

Python本身就有专门的幂运算符号**,直接用它可以一行搞定,而且内置运算经过优化,比手动循环效率更高:

def power_of_n(power, n):
    return n ** power

同样测试power_of_n(3,12),结果也是1728,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:23:07