Ерунда, отлично работает
>>> 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