我正在回顾一些 Python 中的实际任务,其中一个说:对于给定的正实数 A,有必要找到满足不等式的最小整数 K
:. 以我几乎为零的知识,我转储了以下代码:
a = float(input())
k = 2
while 1+range(0, 1/k) <= a:
k+=1
print(k)
但是,不幸的是,我收到了一个错误:
TypeError: 'float' object cannot be interpreted as an integer
原来 range 和 float 类型是不兼容的,这是语言官方文档里写的。出现了一个合乎逻辑的问题:是否有任何解决方法可以让他们成为朋友和/或以不同的方式呈现相同的代码?
输入数据:
结果:
你只是不明白范围是什么以及它是如何工作的。
首先,范围返回一些数字序列。你写
1+range(0, 1/k)如何将一个数字添加到一个数字序列中?
显然,您想将数字添加到序列的 SUM 中,但是您需要编写
1 + sum(range(0, 1/k))但这里也有一个错误。
range(a, b)返回算术级数从a到的项b。你有一个不是算术级数的系列。因此,range无法生成仅使用您的序列。好吧,如何计算你想要的,对,Eugene 已经写过了。