0

我不断收到 TypeError: 'float' object is not subscriptable 想知道为什么

from math import log

class Logarithm(object):

    def __init__(self, base = 0, number= 0):
        self.base = float(base)
        self.number = float(number)

        the_logarithm = log(self.base[self.number])

    def __str__(self):
        return 'Your log = {}'.format(the_logarithm)
4

2 回答 2

2

Cameron Sparr 的回答是正确的。

您可能应该重新检查help(math.log). 这是

log(x[, base]) -> the logarithm of x to the given base.

意味着 base 参数是可选的(默认为e)而不是log(x[base])

于 2013-05-06T23:12:44.723 回答
2

因为这:

log(self.base[self.number])

你想在这里完成什么?self.base是一个浮点数,因此该语句被评估为“的number第 th 个元素base”,这是 Python 无法做到的。

于 2013-05-06T23:06:07.553 回答