Вычисление логарифмов с помощью Python - PullRequest
1 голос
/ 27 марта 2012

Я пытаюсь вычислить логарифмы, используя математический модуль python (math.log(x,[base]), однако, когда я использую float(raw_input) для значений x и base, это дает мне ошибку, ZeroDivisionError: float division by zero.

x = 9.0
base = 3.0

Ответы [ 2 ]

7 голосов
/ 27 марта 2012

Ерунда, отлично работает

>>> import math
>>> x=float(raw_input())
9.0
>>> base=float(raw_input())
3.0
>>> math.log(x, base)
2.0

Почему бы вам не показать нам, как именно вы воспроизводите проблему? Вим совершенно правильно - база 1 даст эту ошибку

>>> base=float(raw_input())
1.0
>>> math.log(x, base)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: float division by zero

С другой стороны - если x<=0, вы получаете «ошибку математического домена»

>>> x=float(raw_input())
0
>>> math.log(x, base)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: math domain error
0 голосов
/ 27 марта 2012

Вам следует избегать x <= 0, поскольку оно не определено! </p>

...