Python3 Operatoren
Was ist ein Operator?
Dieses Kapitel erklärt hauptsächlich Pythons Operatoren.
Nehmen wir ein einfaches Beispiel:
4 + 5 = 9
Im Beispiel,4und5heißtOperand,+heißtOperator。
Die Python-Sprache unterstützt die folgenden Arten von Operatoren:
- Arithmetische Operatoren
- Vergleichsoperatoren (relationale Operatoren)
- Zuweisungsoperatoren
- Logische Operatoren
- Bitweise Operatoren
- Zugehörigkeitsoperatoren
- Identitätsoperatoren
- Operatorrangfolge
Als Nächstes lernen wir Pythons Operatoren einen nach dem anderen.
Arithmetische Operatoren in Python
Das Folgende setzt Variablea=10, Variable vorausb=21:
| Operator | Beschreibung | Beispiel |
|---|---|---|
| + | Addition - Addiert zwei Objekte | a + b ergibt 31 |
| - | Subtraktion - Ergibt eine negative Zahl oder subtrahiert eine Zahl von einer anderen | a - b ergibt -11 |
| * | Multiplikation – Multipliziert zwei Zahlen oder gibt eine Zeichenkette zurück, die eine bestimmte Anzahl von Malen wiederholt wird | a * b ergibt 210 |
| / | Division - x geteilt durch y | b / a ergibt 2.1 |
| % | Modulus - Gibt den Rest der Division zurück | b % a ergibt 1 |
| ** | Potenz – Gibt x hoch y zurück | a**b ist 10 hoch 21 |
| // | Ganzzahlige Division – Rundet auf die nächstkleinere ganze Zahl ab |
>>> 9//2 4 >>> -9//2 -5 |
Das folgende Beispiel demonstriert die Funktionsweise aller arithmetischen Operatoren in Python:
Beispiel (Python 3.0+)
Das obige Beispiel gibt aus:
1 - c 的值为: 31 2 - c 的值为: 11 3 - c 的值为: 210 4 - c 的值为: 2.1 5 - c 的值为: 1 6 - c 的值为: 8 7 - c 的值为: 2
Python-Vergleichsoperatoren
Im Folgenden wird angenommen, dass Variable a 10 und Variable b 20 ist:
| Operator | Beschreibung | Beispiel |
|---|---|---|
| == | Gleich - Vergleicht, ob Objekte gleich sind | (a == b) gibt False zurück. |
| != | Ungleich - Vergleicht, ob zwei Objekte ungleich sind | (a != b) gibt True zurück. |
| > | Größer als – Gibt zurück, ob x größer als y ist | (a > b) gibt False zurück. |
| < | Kleiner als - Gibt zurück, ob x kleiner als y ist. Alle Vergleichsoperatoren geben 1 für wahr und 0 für falsch zurück. Diese entsprechen jeweils den speziellen Variablen True und False. Beachten Sie die Großschreibung dieser Variablennamen. | (a < b) gibt True zurück. |
| >= | Größer oder gleich – Gibt zurück, ob x größer oder gleich y ist. | (a >= b) gibt False zurück. |
| <= | Kleiner als oder gleich - Gibt zurück, ob x kleiner als oder gleich y ist. | (a <= b) gibt True zurück. |
Das folgende Beispiel demonstriert die Funktionsweise aller Vergleichsoperatoren in Python:
Beispiel (Python 3.0+)
Das obige Beispiel gibt aus:
1 - a 不等于 b 2 - a 不等于 b 3 - a 大于等于 b 4 - a 大于 b 5 - a 小于等于 b 6 - b 大于等于 a
Python-Zuweisungsoperatoren
Im Folgenden wird angenommen, dass Variable a 10 und Variable b 20 ist:
| Operator | Beschreibung | Beispiel |
|---|---|---|
| = | Einfacher Zuweisungsoperator | c = a + b weist c das Ergebnis von a + b zu |
| += | Additionszuweisungsoperator | c += a ist äquivalent zu c = c + a |
| -= | Subtraktionszuweisungsoperator | c -= a ist äquivalent zu c = c - a |
| *= | Multiplikationszuweisungsoperator | c *= a ist äquivalent zu c = c * a |
| /= | Divisionszuweisungsoperator | c /= a ist äquivalent zu c = c / a |
| %= | Modulo-Zuweisungsoperator | c %= a ist äquivalent zu c = c % a |
| **= | Potenzzuweisungsoperator | c **= a ist äquivalent zu c = c ** a |
| //= | Floor-Division-Zuweisungsoperator | c //= a ist äquivalent zu c = c // a |
| := | Walrus-Operator, sein Hauptzweck besteht darin, eine Zuweisung durchzuführen und den zugewiesenen Wert gleichzeitig innerhalb eines Ausdrucks zurückzugeben.Neuer Operator, hinzugefügt in Python 3.8。 | In diesem Beispiel vermeidet der Zuweisungsausdruck den zweimaligen Aufruf von len(): if (n := len(a)) > 10:
print(f"List is too long ({n} elements, expected <= 10)")
|
Das folgende Beispiel demonstriert die Funktionsweise aller Zuweisungsoperatoren in Python:
Beispiel (Python 3.0+)
Das obige Beispiel gibt aus:
1 - c 的值为: 31 2 - c 的值为: 52 3 - c 的值为: 1092 4 - c 的值为: 52.0 5 - c 的值为: 2 6 - c 的值为: 2097152 7 - c 的值为: 99864
In Python 3.8 und später wurde eine neue Syntaxfunktion namens "Walross-Operator" eingeführt, die das:=Symbol verwendet. Der Hauptzweck dieses Operators besteht darin, eine Zuweisung durchzuführen und den zugewiesenen Wert gleichzeitig innerhalb eines Ausdrucks zurückzugeben.
Die Verwendung des Walross-Operators kann den Code in manchen Fällen vereinfachen, insbesondere wenn Sie das Zuweisungsergebnis innerhalb eines Ausdrucks verwenden müssen. Dies ist nützlich, um Schleifenbedingungen oder wiederholte Berechnungen in Ausdrücken zu vereinfachen.
Das folgende ist ein einfaches Beispiel, das die Verwendung des Walross-Operators demonstriert:
Beispiel
n = 10
if n > 5:
print(n)
# Verwendung des Walross-Operators
if (n := 10) > 5:
print(n)
if (n := 10) > 5:: Dies verwendet den Walross-Operator (:=)-Syntax. Der Walross-Operator führt eine Zuweisungsoperation innerhalb eines Ausdrucks aus.(n := 10): Weist der Variablenn10 zu und gibt gleichzeitig das Zuweisungsergebnis zurück.> 5: Prüft, ob die zugewiesenengrößer als 5 ist. Wenn die Bedingung wahr ist, führen Sie den folgenden Codeblock aus.
print(n): Wenn die Bedingung wahr ist, gib die Variable ausnWert (d. h. 10).
Vorteile des Walross-Operators:
- Der Walross-Operator (
:=) ermöglicht eine Zuweisung innerhalb eines Ausdrucks, was Code-Duplizierung reduzieren und die Lesbarkeit und Prägnanz des Codes verbessern kann. - Im obigen Beispiel erfordert der traditionelle Ansatz eine separate Zeile zum Zuweisen
n, und dannifAnweisung zur Bedingungsprüfung. Mit dem Walross-Operator kann der Codeifdirekt Zuweisung und Bedingungsprüfung innerhalb der Anweisung durchführen.
Bitweise Operatoren in Python
Bitweise Operatoren behandeln Zahlen zur Berechnung als Binärzahlen. Die Regeln für bitweise Operationen in Python sind wie folgt:
In der folgenden Tabelle ist Variable a 60 und b 13. Die Binärformate sind wie folgt:
a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011
| Operator | Beschreibung | Beispiel |
|---|---|---|
| & | Bitweiser AND-Operator: Für die beiden an der Operation beteiligten Werte gilt: Wenn beide entsprechenden Bits 1 sind, ist das Ergebnisbit 1; andernfalls ist es 0. | (a & b) ergibt 12. Binäre Erklärung: 0000 1100 |
| | | Bitweiser OR-Operator: Wenn mindestens eines der beiden entsprechenden Binärbits 1 ist, ist das Ergebnisbit 1. | (a | b) ergibt 61. Binäre Erklärung: 0011 1101 |
| ^ | Bitweiser XOR-Operator: Wenn die beiden entsprechenden Binärbits unterschiedlich sind, ist das Ergebnis 1. | (a ^ b) gibt 49 aus. Binäre Erklärung: 0011 0001 |
| ~ | Bitweiser NOT-Operator: Invertiert jedes Binärbit der Daten, wandelt 1 in 0 und 0 in 1 um.~xähnlich wie-x-1 | (~a ) gibt -61 aus. Binäre Erklärung: 1100 0011, in der Zweierkomplementdarstellung für eine vorzeichenbehaftete Binärzahl. |
| << | Linksverschiebungsoperator: Alle Binärbits des Operanden werden um eine angegebene Anzahl von Stellen nach links verschoben. Die Zahl rechts von "<<" gibt die Anzahl der zu verschiebenden Stellen an. Höherwertige Bits werden verworfen, und niederwertige Bits werden mit 0 aufgefüllt. | a << 2 gibt 240 aus. Binäre Erklärung: 1111 0000 |
| >> | Rechtsverschiebungsoperator: Alle Binärbits des Operanden links von ">>" werden um eine angegebene Anzahl von Stellen nach rechts verschoben. Die Zahl rechts von ">>" gibt die Anzahl der zu verschiebenden Stellen an. | a >> 2 gibt 15 aus. Binäre Erklärung: 0000 1111 |
Die folgenden Beispiele demonstrieren die Operationen aller bitweisen Operatoren von Python:
Beispiel (Python 3.0+)
Die Ausgabe des obigen Beispiels ist:
1 - c 的值为: 12 2 - c 的值为: 61 3 - c 的值为: 49 4 - c 的值为: -61 5 - c 的值为: 240 6 - c 的值为: 15
Logische Operatoren in Python
Die Sprache Python unterstützt logische Operatoren. Im Folgenden wird angenommen, dass die Variable a den Wert 10 und b den Wert 20 hat:
| Operator | Logischer Ausdruck | Beschreibung | Beispiel |
|---|---|---|---|
| und | x and y | Boolesches AND - Wenn x False ist, gibt x and y den Wert von x zurück; andernfalls gibt es den ausgewerteten Wert von y zurück. | (a and b) gibt 20 zurück. |
| oder | x or y | Boolesches OR - Wenn x True ist, gibt es den Wert von x zurück; andernfalls gibt es den ausgewerteten Wert von y zurück. | (a or b) gibt 10 zurück. |
| not | not x | Boolesches NOT – Wenn x True ist, wird False zurückgegeben. Wenn x False ist, wird True zurückgegeben. | not(a and b) gibt False zurück |
Die Ausgabe des obigen Beispiels ist:
Beispiel (Python 3.0+)
Die Ausgabe des obigen Beispiels ist:
1 - 变量 a 和 b 都为 true 2 - 变量 a 和 b 都为 true,或其中一个变量为 true 3 - 变量 a 和 b 有一个不为 true 4 - 变量 a 和 b 都为 true,或其中一个变量为 true 5 - 变量 a 和 b 都为 false,或其中一个变量为 false
Python-Mitgliedschaftsoperatoren
Zusätzlich zu den oben genannten Operatoren unterstützt Python auch Mitgliedschaftsoperatoren. Die Testinstanz enthält eine Reihe von Elementen, darunter Strings, Listen oder Tupel.
| Operator | Beschreibung | Beispiel |
|---|---|---|
| in | Gibt True zurück, wenn ein Wert in der angegebenen Sequenz gefunden wird; andernfalls wird False zurückgegeben. | x in y sequence: Gibt True zurück, wenn x in der y-Sequenz enthalten ist. |
| not in | Gibt True zurück, wenn ein Wert nicht in der angegebenen Sequenz gefunden wird; andernfalls wird False zurückgegeben. | x not in y sequence: Gibt True zurück, wenn x nicht in der y-Sequenz enthalten ist. |
Die folgenden Beispiele demonstrieren die Funktionsweise aller Python-Mitgliedschaftsoperatoren:
Beispiel (Python 3.0+)
Die Ausgabe des obigen Beispiels ist:
1 - 变量 a 不在给定的列表中 list 中 2 - 变量 b 不在给定的列表中 list 中 3 - 变量 a 在给定的列表中 list 中
Python-Identitätsoperatoren
Identitätsoperatoren werden verwendet, um die Speicherorte zweier Objekte zu vergleichen.
| Operator | Beschreibung | Beispiel |
|---|---|---|
| ist | is wird verwendet, um festzustellen, ob zwei Bezeichner auf dasselbe Objekt verweisen | x is y, ähnlich wieid(x) == id(y), wenn sie auf dasselbe Objekt verweisen, gibt True zurück; andernfalls gibt es False zurück. |
| ist nicht | is not wird verwendet, um festzustellen, ob zwei Bezeichner auf verschiedene Objekte verweisen | x is not y, ähnlich wieid(x) != id(y). Wenn sie nicht auf dasselbe Objekt verweisen, gibt es True zurück; andernfalls gibt es False zurück. |
Hinweis: id()Die Funktion wird verwendet, um die Speicheradresse eines Objekts zu ermitteln.
Die folgenden Beispiele demonstrieren die Operationen aller Python-Identitätsoperatoren:
Beispiel (Python 3.0+)
Die Ausgabe des obigen Beispiels ist:
1 - a 和 b 有相同的标识 2 - a 和 b 有相同的标识 3 - a 和 b 没有相同的标识 4 - a 和 b 没有相同的标识
Der Unterschied zwischen is und ==:
is wird verwendet, um festzustellen, ob zwei Variablen auf dasselbe Objekt verweisen; == wird verwendet, um festzustellen, ob die Werte der referenzierten Variablen gleich sind.
>>>a = [1, 2, 3] >>> b = a >>> b is a True >>> b == a True >>> b = a[:] >>> b is a False >>> b == a True
Python-Operatorrangfolge
Die folgende Tabelle listet alle Operatoren von der höchsten zur niedrigsten Priorität auf. Operatoren in derselben Zelle haben dieselbe Priorität. Sofern nicht anders angegeben, beziehen sich Operatoren auf binäre Operationen. Operatoren in derselben Zelle werden von links nach rechts gruppiert (außer bei der Exponentiation, die von rechts nach links gruppiert wird):
Operator |
Beschreibung |
|---|---|
|
Ausdrücke in Klammern |
|
Subskription, Slicing, Aufruf, Attributreferenz |
await x |
await-Ausdruck |
|
Potenzierung (Potenz) |
|
Positiv, negativ, bitweises NOT |
|
Multiplikation, Matrixmultiplikation, Division, Ganzzahldivision, Rest |
|
Addition und Subtraktion |
|
Bitverschiebungen |
|
Bitweises AND |
|
Bitweises XOR |
|
Bitweises OR |
|
Vergleiche, einschließlich Zugehörigkeitstests und Identitätstests |
|
Boolesches NOT |
|
Boolesches UND |
|
Boolesches OR |
|
Bedingter Ausdruck |
|
Lambda-Ausdruck |
|
Zuweisungsausdruck |
Die folgenden Beispiele demonstrieren die Operationen der gesamten Python-Operatorrangfolge:
Beispiel (Python 3.0+)
Die Ausgabe des obigen Beispiels ist:
(a + b) * c / d 运算结果为: 90.0 ((a + b) * c) / d 运算结果为: 90.0 (a + b) * (c / d) 运算结果为: 90.0 a + (b * c) / d 运算结果为: 50.0
and hat höhere Priorität:
Beispiel
Das obige Beispiel wertet zuersty and zaus und gibt False zurück, dann liefertx or FalseTrue, und das Ausgabeergebnis ist:
情况1:默认优先级(先算and) yes 情况2:强制改变优先级(先算or) no
Weitere ErweiterungenHinweis:Python3 unterstützt den<>Operator nicht mehr, Sie können!=stattdessen verwenden, wenn Sie diesen Vergleichsoperator wirklich verwenden müssen, können Sie die folgende Methode verwenden:
>>> from __future__ import barry_as_FLUFL >>> 1 <> 2 True