Ich war gelangweilt und spielte mit der ipython-Konsole herum und stieß auf folgendes Verhalten, das ich nicht wirklich verstehe
%Vor%Die Antwort auf [4] ist nicht 4294967296L, es ist eine sehr lange Zahl, aber ich kann nicht wirklich herausfinden, warum.
Die Nummer finden Sie hier: Ссылка
(Ubuntu 8.10, python 2.5.2, ipython 0.8.4)
(Mac OS X 10.5.6, Python 2.5.1)
Python läuft bei der mathematischen Potenzoperation von rechts nach links. Zum Beispiel macht IN [2]:
2 ** (4) = 16
IN [3] = 2 2 2 2 = 2 2 ** (4) = 2 ** 16 = 65536
Sie benötigen Klammern, wenn Sie von links nach rechts berechnen möchten. Der Grund, warum OUT [4] die gewünschte Antwort nicht ausgibt, liegt darin, dass die Zahl astronomisch ist und Python sie nicht ausdrucken kann.
2 ^ 65536 = extrem groß
Der Vorrang des Operators ** bewirkt, dass die Auswertung von rechts nach links (anstelle der erwarteten von links nach rechts) verläuft. Mit anderen Worten:
%Vor% Wie die anderen Antworten bereits gesagt haben, liegt das daran, dass **
von rechts nach links ausgewertet wird.
Hier ist der Dokumentationslink , in dem alle Präzedenzfälle beschrieben werden.