Ich habe mich schon seit einiger Zeit gefragt. Wie der Titel schon sagt, was ist schneller, die eigentliche Funktion oder einfach auf die halbe Potenz zu erhöhen?
AKTUALISIEREN
Dies ist keine Frage der vorzeitigen Optimierung. Dies ist lediglich eine Frage der tatsächlichen Funktionsweise des zugrunde liegenden Codes. Wie funktioniert Python-Code?
Ich habe Guido van Rossum eine E-Mail geschickt, weil ich wirklich die Unterschiede in diesen Methoden wissen wollte.
Meine E-Mail:
Es gibt mindestens drei Möglichkeiten, eine Quadratwurzel in Python zu erstellen: math.sqrt, der Operator '**' und pow (x, .5). Ich bin nur neugierig auf die Unterschiede in der Implementierung von jedem dieser. Was ist besser, wenn es um Effizienz geht?
Seine Antwort:
pow und ** sind äquivalent; math.sqrt funktioniert nicht für komplexe Zahlen und verknüpft mit der Funktion C sqrt (). Welcher schneller ist, weiß ich nicht ...
math.sqrt
es sich um eine optimierte Routine handelt (wie sie ist) und die Absicht klarer zum Ausdruck bringt, sollte sie immer vorgezogen werden x**.5
. Es ist keine vorzeitige Optimierung, zu wissen, was Sie schreiben, und die Alternative zu wählen, die schneller ist und mehr Codeklarheit bietet. Wenn ja, müssen Sie gleich gut argumentieren, warum Sie die anderen Alternativen gewählt haben.