Python开发时报TypeError: ‘int‘ object is not iterable错误的解决方式

目录
  • 前言
  • 错误原因
    • 案例1:
    • 案例2:
  • 错误解决方案
    • 案例1解决方案:
    • 案例2解决方案:
  • 结论

前言

当我们编写任何程序时,都会遇到一些错误,会让我们有挫败感,所以我有一个解决方案给你。 今天在这篇文章中,我们将讨论错误类型error: 'int' object is not iterable。 我们将讨论为什么会出现此错误以及此错误的一些可能解决方案。请务必阅读到最后,以节省大量调试此错误的时间。

首先,让我们了解“iterable”(可迭代)一词的含义? 可迭代是我们可以从中获取值并相应地使用它们的东西。例如,每当我们使用循环遍历列表或元组时,循环就作为可迭代对象工作,它一次提供一个元素来处理它。 换句话说,您可以将 iterable 视为一次从中获取单个项目的容器。它会按照指示提供物品。

例如:

for i in range(5):
print(i)

当我们在终端中运行这段代码时,我们会得到输出:

0

1

2

3

4

在上面的例子中,我们可以看到 range() 函数返回一个数字列表,变量 i 作为一个容器工作。它一次给出一个值并打印它。 现在我们将了解为什么会发生此错误,我们将检查如何消除这些错误..

错误原因

案例1:

假设您正在编写一个程序,其中给出了一个火车站名称列表。您正在尝试遍历列表并以大写顺序打印所有站名。您已经使用循环来完成这项工作。

例如:

station_names = ['New Delhi', 'Lucknow', 'Patna', 'GorakhPur']
for num in len(station_names):
station_uppercase = station_names[num].upper()
print(station_uppercase)

当我们在终端中运行这个程序时,我们会得到这样的错误。

输出:

Traceback (most recent call last):

File “c:\Users\ASUS\Desktop\Geeksgyan Work\test.py”, line 3, in <module>

for num in len(station_names):
TypeError: ‘int’ object is not iterable

正如在输出本身中提到的那样,在第 3 行中我们得到了错误。 我们得到这个错误是因为我们试图从一个不可能的整数值中迭代值。我们知道 len() 函数返回一个整数值。所以它不能被迭代来获取值。我们只能迭代那些应该是容器的项目,这意味着它们包含一堆值,如列表、元组等。

案例2:

假设给定一个字符串。我们想改变字符的替代情况。表示交替顺序的小写和大写。我们将使用循环来完成,如下例所示。

例子:

string = 'abcdefghij'
new_string = ''
for char in len(string):
if (char % 2 != 0):
    new_string = new_string + string[char].upper()
else:
    new_string = new_string + string[char]

            print(f"After alternating case changes : {new_string}")

当我们尝试在终端中运行它时,我们会遇到错误:'int' object is not iterable。

输出:

PS C:\Users\ASUS\Desktop\Geeksgyan Work> python -u “c:\Users\ASUS\Desktop\Geeksgyan Work\test.py”

Traceback (most recent call last):

File “c:\Users\ASUS\Desktop\Geeksgyan Work\test.py”, line 4, in <module>

for char in len(string):
TypeError: ‘int’ object is not iterable

这里发生了同样的错误,因为我们试图从一个整数迭代。 有时这些错误很难被识别出来,我们花了几个小时调试我们的代码来找到错误。

错误解决方案

我们知道我们收到这个错误是因为我们试图迭代那个不可迭代的对象。所以我们必须做一些可以使该对象可迭代的事情。 我们可以看到,在循环中使用 range() 函数解决了错误,因为我们知道 range() 函数返回一个容器或事物列表,我们可以在其中一个一个地迭代值,并且可以相应地处理它。 在循环中使用 range() 函数后,错误将得到解决,我们将能够成功运行我们的程序,我们将看到所需的输出。

案例1解决方案:

station_names = ['New Delhi', 'Lucknow', 'Patna', 'GorakhPur']

for num in range(len(station_names)):
station_uppercase = station_names[num].upper()
print(station_uppercase)

输出:

PS C:\Users\ASUS\Desktop\Geeksgyan Work> python -u “c:\Users\ASUS\Desktop\Geeksgyan Work\test.py”

New Delhi

Lucknow

Patna

GorakhPur

我们可以看到我们的程序运行成功了。

在我们使用 range 函数之后,它会返回一个可迭代对象,然后我们的 'num' 变量会遍历该可迭代对象,一次取一个值并将其转换为大写,然后打印该值。

这就是可迭代的程序的工作原理。

案例2解决方案:

string = 'abcdefghij'

new_string = ''
for char in range(len(string)):
if (char % 2 != 0):
    new_string = new_string + string[char].upper()
else:
    new_string = new_string + string[char]

            print(f"After alternating case changes : {new_string}")

输出:

PS C:\Users\ASUS\Desktop\Geeksgyan Work> python -u “c:\Users\ASUS\Desktop\Geeksgyan Work\test.py”

After alternating case changes : aBcDeFgHiJ

我们可以看到在代码中使用 range() 函数后程序运行成功。它消除了错误并提供了所需的输出。 每当出现此错误时,您要做的第一件事就是查找程序中是否存在任何循环,尝试运行程序并检查是否得到输出。检查您是否尝试迭代无法迭代的值。您会发现错误并尝试使用上述技术解决该错误。

结论

每当您收到错误 typeerror: int object is not iterable 那么您必须检查整个程序并尝试找出您是否尝试使用不可迭代作为可迭代对象。我已经在上面的例子中展示了最常见的错误,我也给出了这些问题的解决方案。

到此这篇关于Python开发时报TypeError: ‘int‘ object is not iterable错误的解决方式的文章就介绍到这了,更多相关Python TypeError: ‘int‘ object is not iterable内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决Python 写文件报错TypeError的问题

    处理上传的文件: f1 = request.FILES['pic'] fname = '%s/%s' % (settings.MEDIA_ROOT, f1.name) with open(fname, 'w') as pic: for c in f1.chunks(): pic.write(c) 测试报错: TypeError at /upload/ write() argument must be str, not bytes 把之前的打开语句修改为用二进制方式打开: f1 = request

  • 解决Python中报错TypeError: must be str, not bytes问题

    如下所示: #!/usr/bin/python import pickle shoplist=['apple','mango','carrot'] f = open('c:\poem.txt','w') pickle.dump(shoplist,f) f.close() del shoplist f = open('c:\poem.txt','r') storedlist = pickle.load(f) print(storedlist) 执行上述程序时候报错: TypeError: must

  • python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法

    发现问题 写python的时候出现了这个错,然后网上的教程的解决方案几乎都是--"重新定义下这个变量",看的我一脸懵逼 后来发现原来是我把return None的方法赋给了变量,之后操作变量导致的,直接上代码 for i in range(2000): read_lines = random.shuffle(read_lines) # 问题出在这里了 print(read_lines) 咋一看是没啥问题,但是一运行就报错 >>TypeError: 'NoneType' ob

  • Python开发时报TypeError: ‘int‘ object is not iterable错误的解决方式

    目录 前言 错误原因 案例1: 案例2: 错误解决方案 案例1解决方案: 案例2解决方案: 结论 前言 当我们编写任何程序时,都会遇到一些错误,会让我们有挫败感,所以我有一个解决方案给你. 今天在这篇文章中,我们将讨论错误类型error: 'int' object is not iterable. 我们将讨论为什么会出现此错误以及此错误的一些可能解决方案.请务必阅读到最后,以节省大量调试此错误的时间. 首先,让我们了解“iterable”(可迭代)一词的含义? 可迭代是我们可以从中获取值并相应地

  • Python TypeError: ‘float‘ object is not subscriptable错误解决

    前言 其实就是个小问题,但是爆出来的时候也很莫名其妙.因为之前都跑得好好的,只是换了不同的文件去跑才出的问题,关键是不同的文件要处理的内容和格式都是完全一样的,一个顺利跑完,一个就报TypeError: ‘float’ object is not subscriptable这个错,就非常无语.接下来就是看看怎么解决问题了: 一开始自然是直接搜索问题,寻找解决办法,实话实说,看了一些博客,但是并没有直接找到解决办法,但是从中获得了一些想法,对问题理解更清楚一点.下面是找到的一种解释: 然后说一下我

  • Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法

    Python 出现错误TypeError: 'NoneType' object is not iterable解决办法 TypeError: 'NoneType' object is not iterable  这个错误提示一般发生在将None赋给多个值时. def myprocess(): a == b if a != b: return True, value; flag, val = myprocess() 在判断语句中,当if条件不满足,并且没有else语句时,函数默认返回None. 在

  • Python使用read_csv读数据遇到分隔符问题的2种解决方式

    目录 1.更改read_csv函数中的传参“sep” 1.1缺省sep参数 1.2不缺省sep参数 1.2.1要读入的文档中分隔符为一位字符 1.2.2要读入的文档中分隔符为多位字符 2.利用记事本功能进行分隔符替换 2.1利用txt中的“编辑”—>“替换”操作 2.2小tips 补充:Python read_csv 报错:‘gbk‘ codec can‘t decode byte 0xb4 in position 8: illegal multibyte sequence 总结 用read_c

  • 自己编程中遇到的Python错误和解决方法汇总整理

    开个贴,用于记录平时经常碰到的Python的错误同时对导致错误的原因进行分析,并持续更新,方便以后查询,学习. 知识在于积累嘛!微笑 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 错误: 复制代码 代码如下: >>> def f(x, y):      print x, y  >>> t = ('a', 'b')  >>> f(t)    Traceback (most rece

  • Python开发微信公众平台的方法详解【基于weixin-knife】

    本文实例讲述了Python开发微信公众平台的方法.分享给大家供大家参考,具体如下: 这两天将之前基于微信公众平台的代码重构了下,基础功能以库的方式提供,提供了demo使用的是django,看着之前为赶进度写的代码真的惨不忍睹,所以weixin-knife产生了,正如其名,提供的是必要的功能,而不是完整的应用.weixin-knife可以很方便的处理关注,取关注事件,处理文本消息,回复用户信息,jssdk处理,oauth认证,以及微信支付. github地址:https://github.com/

  • 分析经典Python开发工程师面试题

    你知道吗?实际上Python早在20世纪90年代初就已经诞生,可是火爆时间却并不长,就小编本人来说,也是前几年才了解到它.据统计,目前Python开发人员的薪资待遇为10K以上,这样的诱惑很难让人拒绝,所以这几年使得许多人纷纷学习Python. Python 是一种解释型脚本语言,注重可读性和效率的语言,尤其是相较于 Java,PHP 以及 C++ 这样的语言,它的这两个优势让其在开发者中大受欢迎,同时在运维领域也被大量运用到自动化运维场景中.如今使用到Python的领域非常广泛,主要有人工智能

  • 值得收藏,Python 开发中的高级技巧

    Python 开发中有哪些高级技巧?这是知乎上一个问题,我总结了一些常见的技巧在这里,可能谈不上多高级,但掌握这些至少可以让你的代码看起来 Pythonic 一点.如果你还在按照类C语言的那套风格来写的话,在 code review 恐怕会要被吐槽了. 列表推导式 >>> chars = [ c for c in 'python' ] >>> chars ['p', 'y', 't', 'h', 'o', 'n'] 字典推导式 >>> dict1 =

  • 使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)

    全国抗"疫"这么久终于见到曙光,在家待了将近一个月,现在终于可以去上班了,可是却发现出门必备的口罩却一直买不到.最近看到京东上每天都会有口罩的秒杀活动,试了几次却怎么也抢不到,到了抢购的时间,浏览器的页面根本就刷新不出来,等刷出来秒杀也结束了.现在每天只放出一万个,却有几百万人在抢,很想知道别人是怎么抢到的,于是就在网上找了大神公开出来的抢购代码.看了下代码并不复杂,现在我们就报着学习的态度一起看看. 使用模块 requests:类似 urllib,主要用于向网站发送 HTTP 请求.

随机推荐