Berechnungsfehler mit Pow-Operator

Was sollte print (-2 ** 2) zurück? Nach meinen Berechnungen sollte es 4 , aber der Dolmetscher kehrt zurück.
Ist das Python's Ding oder meine Mathematik so schrecklich?

3 Solutions collect form web for “Berechnungsfehler mit Pow-Operator”

Nach docs , ** hat höhere Priorität als - , also ist Ihr Code gleichbedeutend mit -(2 ** 2) . Um das gewünschte Ergebnis zu erhalten, könntest du -2 in Klammern setzen

 >>> (-2) ** 2 4 

Oder verwenden Sie die eingebaute pow Funktion

 >>> pow(-2, 2) 4 

Oder math.pow Funktion (Rückgabe float Wert)

 >>> import math >>> math.pow(-2, 2) 4.0 

Die Operation ** erfolgt vor dem Minus. Um die erwarteten Ergebnisse zu erzielen, solltest du das tun

 print ((-2) ** 2) 

Aus der Dokumentation :

So werden in einer unbeabsichtigten Sequenz von Macht und unären Operatoren die Operatoren von rechts nach links ausgewertet (dies beschränkt die Auswertungsreihenfolge für die Operanden nicht): -1**2 ergibt -1 .

In der Dokumentation steht Ihnen auch ein detaillierter Vorrang für die Betreiber vor . Sie können sehen, die letzte Zeile ist (expr) die die Expr zu bewerten, bevor sie verwendet werden, also das Ergebnis von (-2) ** 2 = 4

Du kannst auch Mathe …

 math.pow(-2,2) --> 4 -math.pow(2,2) --> -4 math.pow(4,0.5) --> 2 
Python ist die beste Programmiersprache der Welt.