这是一个相当奇怪/愚蠢的问题,所以如果有人作为一个更好的标题名称,请请求编辑。Python列表类型
我创建了一个函数,它返回列表中数字的乘积。 当测试该功能,我试图列出,包括intergers和实数(浮点),如items = [1,2.0,3,4.0]
功能:
items = [1.0, 2, 3.0, 10, "a"]
def mult1(items):
total = 1
for i in items:
total = total * i
return total
print mult1(items)
该功能与上面的项目是[1.0,2,3.0的作品,10 ]并且该特定列表的输出是60.0。
我已经学习了标准ML,通常只有一个特定类型的列表(我确定有代码在那里,以某种方式使我的声明不相关),所以想了解如果我进入会发生什么一个字符串作为列表项,我做了,并得到一个错误(我期望得到一个错误,因为你不能用一个数字乘以一个字符串)。
不过,我收到了错误混淆了我:
TypeError: can't multiply sequence by non-int of type 'float'
这个错误我感到困惑。我知道一个字符串不能相乘,但是这是否也意味着列表中的所有项目都被认为是一个浮点数,尽管有些看起来像整数?
我认为这个错误应该表明它不能计算一个不是浮点数或不是整数的类型,但是对于我来说(可能是错误的),它似乎意味着它不能将列表乘以一个类型是不是一个整数,也不是类型浮动?
对我来说,这听起来像每个元素有两种类型,整数和浮点数。
你可以显示你写的代码产生这个错误吗? – chown
向我们展示功能正常功能可以正常工作 – pythad
我将为我的功能添加代码 –