python 做的小练习,报错TypeError: 'int' object has no attribute '__getitem__'

def digui(chuanru): for a in chuanru: if isinstance(chuanru,list): digui(a) else: print a def main(): lijie=["mik",2,3,"don",5,[6,7,8,9,[10,11,12[13,14,15,16]]]] digui(lijie) if __name__=='__main__': main()报错:TypeError: 'int' object has no attribute '__getitem__',是一个用递归函数取出函数里所有的值,求解...

12后面少了一个逗号吧,错误是说整形不能有索引这个方法,也就是12[13,14,15,16]这里出错
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-30

    如果你没有安装我的 imutils 包,你需要从 GitHub 获取或者通过 pip install imutils 安装
    并且如果你有兴趣让你的家用监控系统上传安保图片到 Dropbox,你需要 dropbox 包:pip install dropbox。

    所有的东西都已经安装并且正确配置,我们可以继续前进使用 Python 和 OpenCV 来打造我们的家用监控及运动检测系统了。

本回答被网友采纳
第2个回答  2018-02-26

1、py文件的缩进一般都是4个空格

2、

def digui(chuanru):
    if not isinstance(chuanru, list):
        print(chuanru)
    else:
        for a in chuanru:
            digui(a)

第3个回答  2018-02-26
问题在于:当字符(字符串依然可以迭代)和int无法被迭代时,进入for循环会跑出异常,循环要放在isinstance的判断里面
第4个回答  2014-12-12
for a in chuanru:
if isinstance(a,list): #应判断a是list,不是isinstance(chuanru,list)
digui(a)
else:
print a本回答被提问者采纳
相似回答