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

制作游戏时反复出现TypeError: 'int' object is not iterable错误求解决

问题分析与修复方案

1. 直接导致TypeError的原因

你的代码里第一个循环写法错误:

for elem in(len(enemyList)):

len(enemyList)返回的是一个整数(列表的长度值),而for...in语句要求遍历的是可迭代对象(比如列表、range序列等),整数无法被迭代,这就是TypeError: 'int' object is not iterable的根源。

修复方式二选一:

  • 若需要遍历列表的索引:
    for elem in range(len(enemyList)):
    
  • 若直接需要列表中的元素:
    for elem in enemyList:
    

2. wave_call函数中的逻辑无效问题

在wave_call函数里,你先初始化enemyX = [],接着写for elem in range(len(enemyX)):——此时enemyX是空列表,len(enemyX)等于0,range(0)不会生成任何迭代项,循环根本不会执行,导致你无法添加任何敌人数据。

修复方式:
先确定要生成的敌人数量,基于数量构建循环,示例如下:

def wave_call():
    if wave == 1:
        global enemyList
        enemyX = []
        enemyY = []
        # 替换成你需要的敌人数量,比如生成8个敌人
        for _ in range(8):
            x = random.randint(0, 1500)
            y = random.randint(0,750)
            enemyX.append(x)
            enemyY.append(y)
            enemyList.append("")
            screen.blit(enemy, (x, y))

另外注意:你开头的enemyList = []写在循环外部,会直接清空列表,若这不是你想要的初始化逻辑,需要调整位置避免覆盖已有数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 14:07:13