Altro
Come si calcola la radice quadrata in Python?
Perché Python dà la risposta "sbagliata"?
x = 16
sqrt = x**(.5)
returns 4
sqrt = x**(1/2)
returns 1
Sì, so importare la matematica
e usare sqrt
. Ma sto cercando una risposta a quanto sopra.
122
3
sqrt=x**(1/2)
sta facendo una divisione intera.1/2 == 0
.Quindi stai calcolando x(1/2) nel primo caso, x(0) nel secondo.
Quindi non è sbagliato, è la risposta giusta ad una domanda diversa.
Devi scrivere:
sqrt = x**(1/2.0)
, altrimenti viene eseguita una divisione intera e l'espressione1/2
restituisce0
.Questo comportamento è "normale" in Python 2.x, mentre in Python 3.x
1/2
si valuta a0.5
. Se volete che il vostro codice Python 2.x si comporti come il 3.x per quanto riguarda la divisione scrivetefrom __future__ import division
- allora1/2
valuterà a0.5
e, per compatibilità all'indietro,1//2
valuterà a0
.E per la cronaca, il modo preferito per calcolare una radice quadrata è questo:
/
esegue una divisione intera in Python 2:Se uno dei numeri è un float, funziona come previsto: