python - 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)
问题:
- 这是否意味着Python列表项“索引”只能是整数(0,1,2)?
- 这是否也意味着 int 不能做而 float 不能做的常见论点不再正确,因为 list append 和 edit 正是 int 需要而 float 不能的地方。
参考:文章编号:20452189 - “为什么我应该使用整数而不是浮点数?”
解决方案
列表索引必须是从 0 到 n-1 的整数,其中 n 是列表的长度。它还允许范围内的负索引以反向访问元素。
列表恰好存储 n 个项目,我们只需要这些整数范围来访问存储的数据。
如果给定 1.0,则始终可以使用 int() 将其强制转换为 int,但如果最终得到浮点数,则应该问一个问题,为什么最终会得到浮点数来访问数据。从某种意义上说,编程不仅仅是数学,我们想做一些阻止错误的事情。
推荐阅读
- python - 无法保存场地字段
- javascript - 元素类型无效 | 反应
- java - .OnClickListener 与 .OnChildClickListener
- google-apps-script - Apps 脚本中的 Google Docs API
- javascript - 无论如何要修复mathjs漏洞
- apache - .htaccess - 限制对文件的访问,除非服务器访问
- android - 将文本复制到剪贴板会导致在模拟器上执行并行测试时崩溃
- javascript - SwiperJS 开始视图
- javascript - 如何在 React 中设置动态字段的值?
- python - Python - 使用 if 条件插入参数