python - 尝试列表操作时出现浮动对象错误
问题描述
我基本上是在尝试重新创建一些算法。用户应该从键盘输入值并将它们转换为列表。之后,我想从列表中添加两个最小值,然后重复直到我得到 1 的值。但是,我得到以下错误:
Traceback (most recent call last):
********* line 13, in <module>
while n[:1] != 1.0:
TypeError: 'float' object is not subscriptable
这是我的代码:
a = input("Enter values: \n")
n = list(map(float, a.split(' ')))
OK = 1
if OK:
while n[:1] != 1.0:
n = sorted(n)
print(n)
n[1] = n[0] + n[1]
n = n.pop(0)
print(n)
解决方案
首先,您可能希望使用<
您的条件而不是精确!=
检查,因为您正在处理不精确的浮点数。其次,您不断更改n
列表和浮点数之间的类型(通过为其分配 的值pop
)。这是您的代码的固定版本:
a = input("Enter values: \n")
n = list(map(float, a.split(' ')))
OK = 1
if OK:
while n[0] < 1.0: # Access the first element with [0] not by slicing with [:1]
n = sorted(n)
print(n)
n[1] = n[0] + n[1]
n.pop(0) # Here don't assign this result back to n
print(n)
我不会解决其他人提到的输入值大于 1 的情况,我相信您在其余代码中正确处理了它
这是一个示例运行:
Enter values:
0.2 0.1 0.4 0.6 0.4 0.7
[OUTPUT]
[0.1, 0.2, 0.4, 0.4, 0.6, 0.7]
[0.30000000000000004, 0.4, 0.4, 0.6, 0.7]
[0.4, 0.6, 0.7, 0.7000000000000001]
[1.0, 0.7, 0.7000000000000001]
推荐阅读
- postgresql - 如何在 postgresql 11 中安装 pg_background 扩展
- angular-material - Rxweb 验证器不使用 mat 输入
- json - jq JSON 处理缺失字段
- python - 如何将键列表和值列表列表转换为单个字典列表?
- reactjs - 移动视图中的 Reactstrap InputGroup 响应问题
- python - 将字符串转换为正则表达式所需的支持
- jenkins - 在 BlueOcean 编辑器中输入“scm”的内容
- javascript - 用ajax显示加载信息
- flutter - 如何像 java 一样在 android studio codeInsight/Content Assist 中颤振/飞镖
- javascript - 过滤器不适用于第三个子级别(嵌套级别)