首页 > 解决方案 > Python 列表是否支持浮点数?什么时候需要浮点数不能做的整数?

问题描述

我的分配代码与整数一起工作正常,但我意识到它不能接受小数,并且价格的货币值有小数。以为我可以轻松地将所有 int 输入更改为浮点输入,我收到了此错误消息。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)

问题:

  1. 这是否意味着Python列表项“索引”只能是整数(0,1,2)?
  2. 这是否也意味着 int 不能做而 float 不能做的常见论点不再正确,因为 list append 和 edit 正是 int 需要而 float 不能的地方。

参考:文章编号:20452189 - “为什么我应该使用整数而不是浮点数?”

标签: pythonpython-3.x

解决方案


列表索引必须是从 0 到 n-1 的整数,其中 n 是列表的长度。它还允许范围内的负索引以反向访问元素。

列表恰好存储 n 个项目,我们只需要这些整数范围来访问存储的数据。

如果给定 1.0,则始终可以使用 int() 将其强制转换为 int,但如果最终得到浮点数,则应该问一个问题,为什么最终会得到浮点数来访问数据。从某种意义上说,编程不仅仅是数学,我们想做一些阻止错误的事情。


推荐阅读