Me lo stavo chiedendo da tempo. Come dice il titolo, quale è più veloce, la funzione effettiva o semplicemente elevando a metà potenza?
AGGIORNARE
Non si tratta di ottimizzazione prematura. Questa è semplicemente una domanda su come funziona effettivamente il codice sottostante. Qual è la teoria di come funziona il codice Python?
Ho inviato un'email a Guido van Rossum perché volevo davvero conoscere le differenze tra questi metodi.
La mia email:
Esistono almeno 3 modi per eseguire una radice quadrata in Python: math.sqrt, l'operatore '**' e pow (x, .5). Sono solo curioso delle differenze nell'attuazione di ciascuno di questi. Quando si tratta di efficienza, che è meglio?
La sua risposta:
pow e ** sono equivalenti; math.sqrt non funziona per numeri complessi e si collega alla funzione C sqrt (). Per quanto riguarda quale è più veloce, non ho idea ...
math.sqrt
è una routine più ottimizzata (così com'è) ed esprime l'intento in modo più chiaro, dovrebbe sempre essere preferita x**.5
. Non è prematura l'ottimizzazione per sapere cosa scrivi e scegliere l'alternativa che è più veloce e fornisce maggiore chiarezza del codice. In tal caso, devi discutere altrettanto bene del perché avresti scelto le altre alternative.