我的赋值代码可以很好地使用整数,但是我意识到它不能接受小数,而价格中的货币值带有小数。以为我可以轻松地将所有int输入更改为float输入,我收到了此错误消息。
TypeError:列表索引必须是整数或切片,而不是浮点型
该代码段例如:
electronics = [
["Sony cam","camera",199],["MS mouse","computer",299],
["ABC speakers","speaker",399]]
editinput = input("Select a product to edit. \n")
#somehow this cannot be float
editindex = float(editinput)-1
editprice = input("Price SGD $: \t")
# Changing editing an item in a nested list
electronics[editindex][2] = float(editprice)
题:
这是否意味着Python列表项“索引”只能是整数
(0,1,2)?
这是否也意味着人们普遍认为“没有什么int
可以做一个浮点数不能做的事,不再如此,因为列表追加,
而编辑正是int是必需的,而float是不需要的。
参考:商品编号:20452189-“为什么要使用整数而不是浮点数?”
最佳答案
列表索引必须是从0到n-1的整数,其中n是列表的长度。它还允许在该范围内进行负索引,以反向访问元素。
列表正好存储n个项目,我们只需要整数范围即可访问存储的数据。
如果给定1.0,则始终可以使用int()将其强制转换为int,但是如果最终以float开头,则应提出一个问题,为什么最终会以float形式访问数据。从某种意义上说,编程不仅仅是数学,我们想做一些阻止错误的事情。