Python test Average Calculator returen error'list'对象没有'len'属性

2024-04-26 17:49:41 发布

您现在位置:Python中文网/ 问答频道 /正文

嘿,这是一个演示,向我的一些同学展示了python和编码的介绍。下面的代码应该能够获取类似[0,1]的列表,如果使用average函数运行,则返回0.5。当使用列表运行时,下面的函数返回错误'list' object has no attribute 'len'。如何在不删除len()函数的情况下让这个函数工作

def average(lst):
    total = 0
    for item in lst:
        total += item
    averageGrade= total / lst.len()
    return averageGrade

我如何让它返回一个浮点数而不是一个整数


Tags: 函数代码编码列表lenobject错误item
2条回答

换行

averageGrade= total / lst.len()

averageGrade= total / len(lst)

有关内置的len,请参阅python文档。内置len计算序列中的项数。由于列表是一个序列,因此内置程序可以对其进行处理。

它失败的原因是错误'list' object has no attribute 'len',因为,list数据类型没有任何名为len的方法。有关list的信息,请参阅python文档

另一个重要的方面是你正在做整数除法。在Python2.7中(我从您的注释中假设),与Python3不同,如果两个操作数都是整数,则返回一个整数。

换行

total = 0.0

将除数的一个操作数转换为浮点数。

或者通过改变

averageGrade= total / lst.len()   

致:

averageGrade= total / lst.__len__()

相关问题 更多 >