Was ist ein Operator?
In diesem Kapitel werden hauptsächlich die Operatoren von Python erläutert. Nehmen wir ein einfaches Beispiel: 4 5 = 9. Im Beispiel werden 4 und 5 als Operanden bezeichnet, und das Zeichen „ “ ist der Operator.
Die Python-Sprache unterstützt die folgenden Arten von Operatoren:
Arithmetische Operatoren
Vergleichsoperatoren (relationale Operatoren)
Zuweisungsoperatoren
Logisch Operatoren
Bitweise Operatoren
Mitgliedsoperatoren
Identitätsoperatoren
Operatorpriorität
Als nächstes lernen wir die Operatoren von Python einzeln.
Arithmetische Python-Operatoren
Im Folgenden wird davon ausgegangen, dass Variable a 10 und Variable b 20 ist:
Operator
Beschreibung
Beispiel
Addieren – Addieren Sie zwei Objekte a b Ausgabeergebnis 30
- Subtrahieren – Erhalten Sie eine negative Zahl oder subtrahieren Sie eine Zahl von einer anderen Zahl a – b Ausgabeergebnis -10
* Multiplizieren – Multiplizieren Sie zwei Zahlen oder geben Sie eine mehrmals wiederholte Zeichenfolge zurück a * b Ausgabeergebnis 200
/ Division – x dividiert durch y b / a Ausgabeergebnis 2
% Modulo – Gibt den Rest der Division b % a zurück. Ausgabeergebnis 0
** Potenz – Gibt die y-te Potenz von x zurück. a**b Ausgabeergebnis 20
// Division durch Ganzzahl – Gibt den ganzzahligen Teil des Quotienten 9//2 zurück. Ausgabeergebnis 4, 9,0//2,0 Ausgabeergebnis 4,0
Das folgende Beispiel demonstriert die Funktionsweise aller arithmetischen Operatoren in Python:
#!/usr/bin/python a = 21 b = 10 c = 0 c = a + b print "Line 1 - Value of c is ", c c = a - b print "Line 2 - Value of c is ", c c = a * b print "Line 3 - Value of c is ", c c = a / b print "Line 4 - Value of c is ", c c = a % b print "Line 5 - Value of c is ", c a = 2 b = 3 c = a**b print "Line 6 - Value of c is ", c a = 10 b = 5 c = a//b print "Line 7 - Value of c is ", c
Das obige Beispiel-Ausgabeergebnis:
Line 1 - Value of c is 31 Line 2 - Value of c is 11 Line 3 - Value of c is 210 Line 4 - Value of c is 2 Line 5 - Value of c is 1 Line 6 - Value of c is 8 Line 7 - Value of c is 2
Python-Vergleichsoperatoren
Im Folgenden wird davon ausgegangen, dass Variable a 10 und Variable b 20 ist:
Operator
Beschreibung
Beispiel
== Equals – Vergleicht, ob die Objekte gleich sind (a == b) Gibt False zurück.
!= Ungleich – Vergleicht, ob zwei Objekte ungleich sind (a != b) Gibt true zurück
<> Ungleich – Vergleicht, ob zwei Objekte ungleich sind (a < ;> b) Rückgabe wahr. Dieser Operator ähnelt != .
> Größer als – Gibt zurück, ob x größer als y ist (a > b) Gibt „Falsch“ 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 den speziellen Variablen True bzw. False. Beachten Sie die Großschreibung dieser Variablennamen. (a < b) gibt true zurück.
>= Größer als oder gleich – Gibt zurück, ob x größer oder gleich y ist. (a >= b) gibt False zurück.
<= Kleiner oder gleich – Gibt zurück, ob x kleiner oder gleich y ist. (a <= b) gibt true zurück.
Die folgenden Beispiele veranschaulichen die Funktionsweise aller Vergleichsoperatoren in Python:
#!/usr/bin/python a = 21 b = 10 c = 0 if ( a == b ): print "Line 1 - a is equal to b" else: print "Line 1 - a is not equal to b" if ( a != b ): print "Line 2 - a is not equal to b" else: print "Line 2 - a is equal to b" if ( a <> b ): print "Line 3 - a is not equal to b" else: print "Line 3 - a is equal to b" if ( a < b ): print "Line 4 - a is less than b" else: print "Line 4 - a is not less than b" if ( a > b ): print "Line 5 - a is greater than b" else: print "Line 5 - a is not greater than b" a = 5; b = 20; if ( a <= b ): print "Line 6 - a is either less than or equal to b" else: print "Line 6 - a is neither less than nor equal to b" if ( b >= a ): print "Line 7 - b is either greater than or equal to b" else: print "Line 7 - b is neither greater than nor equal to b" 以上实例输出结果: Line 1 - a is not equal to b Line 2 - a is not equal to b Line 3 - a is not equal to b Line 4 - a is not less than b Line 5 - a is greater than b Line 6 - a is either less than or equal to b Line 7 - b is either greater than or equal to b
Python-Zuweisungsoperator
Im Folgenden wird davon ausgegangen, dass Variable a 10 und Variable b 20 ist:
Operator
Beschreibung
Instanz
= Einfacher Zuweisungsoperator c = a b Weisen Sie das Ergebnis von a b zu c zu
= Additionszuweisungsoperator c = a entspricht c = c a
-= Subtraktion Zuweisungsoperator 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
**= Leistungszuweisungsoperator c **= a ist äquivalent zu c = c ** a
//= Ganzzahliger Divisionszuweisungsoperator c //= a ist äquivalent zu c = c // a
Die folgenden Beispiele veranschaulichen die Funktionsweise von all Zuweisungsoperatoren in Python:
#!/usr/bin/python a = 21 b = 10 c = 0 c = a + b print "Line 1 - Value of c is ", c c += a print "Line 2 - Value of c is ", c c *= a print "Line 3 - Value of c is ", c c /= a print "Line 4 - Value of c is ", c c = 2 c %= a print "Line 5 - Value of c is ", c c **= a print "Line 6 - Value of c is ", c c //= a print "Line 7 - Value of c is ", c 以上实例输出结果: Line 1 - Value of c is 31 Line 2 - Value of c is 52 Line 3 - Value of c is 1092 Line 4 - Value of c is 52 Line 5 - Value of c is 2 Line 6 - Value of c is 2097152 Line 7 - Value of c is 99864
Python-Bitweise Operatoren
Bitweise Operatoren behandeln Zahlen als binär, um Berechnungen durchzuführen . Die bitweisen Operationen in Python lauten wie folgt:
Operator
Beschreibung
Instanz
& Bitweise UND-Operator (a & b) gibt 12 aus, binäre Interpretation: 0000 1100
|. Bitweiser ODER-Operator (a | b) gibt 61 aus, binäre Interpretation: 0011 1101
^ bitweiser XOR-Operator (a ^ b) Ausgabeergebnis 49, binäre Interpretation: 0011 0001
~ bitweiser Negationsoperator (~a) Ausgabeergebnis -61, binäre Interpretation: 1100 0011, In der Zweierkomplementform einer vorzeichenbehafteten Binärzahl.
<< Linksschiebeoperator a << Ausgabeergebnis 240, binäre Interpretation: 1111 0000
>> 右移动运算符 a >> 2 输出结果 15 ,二进制解释: 0000 1111
以下实例演示了Python所有位运算符的操作:
#!/usr/bin/python a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b; # 12 = 0000 1100 print "Line 1 - Value of c is ", c c = a | b; # 61 = 0011 1101 print "Line 2 - Value of c is ", c c = a ^ b; # 49 = 0011 0001 print "Line 3 - Value of c is ", c c = ~a; # -61 = 1100 0011 print "Line 4 - Value of c is ", c c = a << 2; # 240 = 1111 0000 print "Line 5 - Value of c is ", c c = a >> 2; # 15 = 0000 1111 print "Line 6 - Value of c is ", c
以上实例输出结果:
Line 1 - Value of c is 12
Line 2 - Value of c is 61
Line 3 - Value of c is 49
Line 4 - Value of c is -61
Line 5 - Value of c is 240
Line 6 - Value of c is 15
Python逻辑运算符
Python语言支持逻辑运算符,以下假设变量a为10,变量b为20:
运算符
描述
实例
and 布尔"与" - 如果x为False,x and y返回False,否则它返回y的计算值。 (a and b) 返回 true。
or 布尔"或" - 如果x是True,它返回True,否则它返回y的计算值。 (a or b) 返回 true。
not 布尔"非" - 如果x为True,返回False。如果x为False,它返回True。 not(a and b) 返回 false。
以下实例演示了Python所有逻辑运算符的操作:
#!/usr/bin/python a = 10 b = 20 c = 0 if ( a and b ): print "Line 1 - a and b are true" else: print "Line 1 - Either a is not true or b is not true" if ( a or b ): print "Line 2 - Either a is true or b is true or both are true" else: print "Line 2 - Neither a is true nor b is true" a = 0 if ( a and b ): print "Line 3 - a and b are true" else: print "Line 3 - Either a is not true or b is not true" if ( a or b ): print "Line 4 - Either a is true or b is true or both are true" else: print "Line 4 - Neither a is true nor b is true" if not( a and b ): print "Line 5 - a and b are true" else: print "Line 5 - Either a is not true or b is not true" 以上实例输出结果: Line 1 - a and b are true Line 2 - Either a is true or b is true or both are true Line 3 - Either a is not true or b is not true Line 4 - Either a is true or b is true or both are true Line 5 - a and b are true
Python成员运算符
除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
运算符
描述
实例
in 如果在指定的序列中找到值返回True,否则返回False。 x 在 y序列中 , 如果x在y序列中返回True。
not in 如果在指定的序列中没有找到值返回True,否则返回False。 x 不在 y序列中 , 如果x不在y序列中返回True。
以下实例演示了Python所有成员运算符的操作:
#!/usr/bin/python a = 10 b = 20 list = [1, 2, 3, 4, 5 ]; if ( a in list ): print "Line 1 - a is available in the given list" else: print "Line 1 - a is not available in the given list" if ( b not in list ): print "Line 2 - b is not available in the given list" else: print "Line 2 - b is available in the given list" a = 2 if ( a in list ): print "Line 3 - a is available in the given list" else: print "Line 3 - a is not available in the given list"
以上实例输出结果:
Line 1 - a is not available in the given list
Line 2 - b is not available in the given list
Line 3 - a is available in the given list
Python身份运算符
身份运算符用于比较两个对象的存储单元
运算符
描述
实例
is is是判断两个标识符是不是引用自一个对象 x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not is not是判断两个标识符是不是引用自不同对象 x is not y, 如果 id(x) 不等于 id(y). is not返回结果 1
以下实例演示了Python所有身份运算符的操作:
#!/usr/bin/python a = 20 b = 20 if ( a is b ): print "Line 1 - a and b have same identity" else: print "Line 1 - a and b do not have same identity" if ( id(a) == id(b) ): print "Line 2 - a and b have same identity" else: print "Line 2 - a and b do not have same identity" b = 30 if ( a is b ): print "Line 3 - a and b have same identity" else: print "Line 3 - a and b do not have same identity" if ( a is not b ): print "Line 4 - a and b do not have same identity" else: print "Line 4 - a and b have same identity"
以上实例输出结果:
Line 1 - a and b have same identity
Line 2 - a and b have same identity
Line 3 - a and b do not have same identity
Line 4 - a and b do not have same identity
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符
描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符
以下实例演示了Python所有运算符优先级的操作:
#!/usr/bin/python a = 20 b = 10 c = 15 d = 5 e = 0 e = (a + b) * c / d #( 30 * 15 ) / 5 print "Value of (a + b) * c / d is ", e e = ((a + b) * c) / d # (30 * 15 ) / 5 print "Value of ((a + b) * c) / d is ", e e = (a + b) * (c / d); # (30) * (15/5) print "Value of (a + b) * (c / d) is ", e e = a + (b * c) / d; # 20 + (150/5) print "Value of a + (b * c) / d is ", e
以上实例输出结果:
Value of (a + b) * c / d is 90
Value of ((a + b) * c) / d is 90
Value of (a + b) * (c / d) is 90
Der Wert von a (b * c) / d ist 50