在python3中使用函数len()
当我需要计算给定范围内正数的数量时(例如,范围-->>(1100)), 我使用函数在python3中使用函数len(),python,function,python-3.x,Python,Function,Python 3.x,当我需要计算给定范围内正数的数量时(例如,范围-->>(1100)), 我使用函数len(),但它不起作用,并给出: TypeError:类型为“int”的对象没有len() 是否有人可以解释此错误,或建议使用正确的函数来解决此问题。您可能对单个整数调用len,而不是对范围的输出调用。相反,请按如下方式使用: >>> len(range(1, 100)) 作为论据 序列(如字符串、字节、元组、列表或范围)或集合(如听写集、集合或冻结集) 也就是说,len(s)只能在这些数据结
len()
,但它不起作用,并给出:
TypeError:类型为“int”的对象没有len()
是否有人可以解释此错误,或建议使用正确的函数来解决此问题。您可能对单个整数调用
len
,而不是对范围的输出调用。相反,请按如下方式使用:
>>> len(range(1, 100))
作为论据
序列(如字符串、字节、元组、列表或范围)或集合(如听写集、集合或冻结集)
也就是说,len(s)
只能在这些数据结构中的一个上调用,而且只能在其中一个上调用
传递int
将失败,并出现发布的错误-这根本没有意义,int
s没有长度
TypeError:类型为“int”的对象没有len()
因此,像len(范围(1100))
或len([1,2,3])
这样的东西可以工作,但len(1)
不能
在您的示例中,在注释中:
for s in range(10):
if s>0:
print(len(s))
s
是一个int,在每个循环的范围(10)
中是一个不同的int,这解释了len(s)
失败的原因
另外,从你的代码中直接发布一段代码可以帮助回答者更好地理解你遇到的问题
更新:从您的评论和代码中可以看出,您试图存储输入的列表
input_list = []
for s in range(0,6):
d=float(input())
if d>0:
input_list.append(d)
print("")
print (len(input_list))
执行赋值时,d=float(input())
,d
将是每个循环的不同值,afloat
,因此len(d)
失败。您需要将所有输入存储在一个列表中,然后打印该列表的len
。您可以通过append()
将值存储在列表中-输入列表。append(d)
解决此问题的简单方法是过滤范围,然后计算结果:
num_positives = len([i for i in range(1, 10) if i > 0])
print(num_positives)
len
是获取序列长度的正确函数,但听起来好像不是在序列上调用它,而是在单个整数上调用它。请显示您正在运行的代码和完整的异常回溯,我们将帮助您了解发生的情况。len(1)
生成给定的TypeError
异常len(范围(1100))
按预期返回99。如前所述,我们需要查看您的问题代码。@MahaTaha:您想在那里做什么?你正在生成int
s,它没有长度的概念,为什么你认为len
会起作用?@MahaTaha:请将代码编辑成问题,这样你就可以正确格式化它。@MahaTaha:再说一次,你到底在期待什么?在新的代码中,您试图获取刚刚生成的浮点值的长度。对您来说,浮动的长度是多少?您是否试图在一个列表中累积几个浮点数
?如果您不能理解这一点,请停止编写此代码,并使用适当的Python教程,而不要疯狂地挥舞着希望。或者参加一个提供实际帮助的课程,这种超基础的东西一次教一个问题是不实际的。。。它是work@MahaTaha我的荣幸!在你的问题中,一定要写一篇文章,这样用户才能更好地帮助你。我建议您阅读一本好书,以便更好地掌握这些内容,并阅读更多关于python的内容。还有,记住对任何好的问题进行投票,并在给每个人足够的时间回答(一天左右)后选择一个答案(如果有答案的话)。我知道了。。。非常感谢你的建议。。。。但是我有一个问题:我怎样才能得到你代码的正nos/和(输入列表)/len(输入列表)
。尝试用谷歌搜索这样的问题,结果显示为最重要的结果,并且它有答案。