Szukaj…


Wprowadzenie

Operatory w języku Python mają ustaloną kolejność pierwszeństwa , która określa, którzy operatorzy są oceniani jako pierwsi w potencjalnie niejednoznacznym wyrażeniu. Na przykład w wyrażeniu 3 * 2 + 7 pierwsze 3 jest mnożone przez 2, a następnie wynik jest dodawany do 7, uzyskując 13. Wyrażenie nie jest oceniane na odwrót, ponieważ * ma wyższy priorytet niż +.

Poniżej znajduje się lista operatorów z pierwszeństwem oraz krótki opis tego, co (zwykle) robią.

Uwagi

Z dokumentacji Python:

Poniższa tabela podsumowuje priorytety operatorów w Pythonie, od najniższego priorytetu (najmniejsze wiązanie) do najwyższego priorytetu (najbardziej wiążące). Operatorzy w tym samym polu mają taki sam priorytet. O ile nie podano wyraźnie składni, operatory są binarne. Operatory w tej samej grupie pól od lewej do prawej (z wyjątkiem porównań, w tym testów, które wszystkie mają ten sam priorytet i ciąg od lewej do prawej oraz potęgowanie, które grupują od prawej do lewej).

Operator Opis
lambda Wyrażenie lambda
Jeśli inaczej Wyrażenie warunkowe
lub Boolean OR
i Boolean AND
nie x Boolean NOT
in, not in, is, is not, <, <=,>,> =, <>,! =, == Porównania, w tym testy członkostwa i testy tożsamości
| Bitowe OR
^ Bitowy XOR
I Bitowe AND
<<, >> Przesunięcia
+, - Dodawanie i odejmowanie
*, /, //,% Mnożenie, dzielenie, reszta [8]
+ x, -x, ~ x Pozytywne, negatywne, bitowe NIE
** Potęgowanie [9]
x [indeks], x [indeks: indeks], x (argumenty ...), x.attribute Subskrypcja, krojenie, połączenie, odniesienie do atrybutu
(wyrażenia ...), [wyrażenia ...], {klucz: wartość ...}, wyrażenia ... Wyświetlanie powiązań lub krotek, wyświetlanie listy, wyświetlanie słownika, konwersja ciągów

Proste priorytety operatorów Przykłady w python.

Python przestrzega reguły PEMDAS. PEMDAS oznacza nawiasy, wykładniki, mnożenie i dzielenie oraz dodawanie i odejmowanie.

Przykład:

>>> a, b, c, d = 2, 3, 5, 7
>>> a ** (b + c)  # parentheses
256
>>> a * b ** c  # exponent: same as `a * (b ** c)`
7776
>>> a + b * c / d  # multiplication / division: same as `a + (b * c / d)`
4.142857142857142

Dodatki: obowiązują reguły matematyczne, ale nie zawsze :

>>> 300 / 300 * 200
200.0
>>> 300 * 200 / 300
200.0
>>> 1e300 / 1e300 * 1e200
1e+200
>>> 1e300 * 1e200 / 1e300
inf


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow