2015-11-17 14 views
5

Mi chiedo perché il risultato di log base 10 (1.5) in python = 0.405465108108 mentre la risposta reale = 0.176091259.Calcola il logaritmo in python

Questo è il codice che ho scritto:

import math 
print math.log(1.5) 

Qualcuno può sapere come risolvere questo problema

+1

Perché come nella maggior parte delle lingue, 'log' è logaritmo in base e (logaritmo naturale), non base 10. Se si desidera accedere in base 10, utilizzare' log10'. – Holt

risposta

15

Da the documentation:

Con un argomento, restituisce il logaritmo naturale di x (a base di e).

Con due argomenti, restituisce il logaritmo di x alla proposta di base, calcolato come log(x)/log(base).

Ma il registro è reso disponibile come math.log10(), che non ricorre per accedere divisione, se possibile.

6
math.log10(1.5) 

Utilizzare la funzione log10 nel modulo per la matematica.

4

La funzione math.log è alla base e, ad esempio il logaritmo naturale. Se si desidera utilizzare la base 10, utilizzare math.log10.

2

Se si utilizza il registro senza base, viene utilizzato e.

Dal commento

ritorno il logaritmo di x alla data base.
Se la base non è specificata, restituisce il logaritmo naturale (base e) di x.

Perciò è necessario utilizzare:

import math 
print(math.log(1.5, 10)) 
+0

'math.log (x, n)' è utile quando si dispone di base personalizzata, ma se si desidera logaritmo base 2 o 10, utilizzare 'math.log2' o' math.log10'. – Holt

+0

Hai ragione, l'uso di 'log10' ha una migliore leggibilità ed è meno soggetto a errori – Altoyyr