Python3 opérateurs
Qu'est-ce qu'un opérateur ?
Ce chapitre explique principalement les opérateurs de Python.
Prenons un exemple simple :
4 + 5 = 9
Dans l'exemple,4et5est appeléopérande,+appeléopérateur。
Le langage Python prend en charge les types d'opérateurs suivants:
- Opérateurs arithmétiques
- Opérateurs de comparaison (relationnels)
- Opérateurs d'affectation
- Opérateurs logiques
- Opérateurs bit à bit
- Opérateurs d'appartenance
- Opérateurs d'identité
- Priorité des opérateurs
Ensuite, apprenons les opérateurs de Python un par un.
Opérateurs arithmétiques Python
Ce qui suit suppose que la variablea=10, variableb=21:
| Operator | Description | Exemple |
|---|---|---|
| + | Addition - Additionne deux objets | a + b donne 31 |
| - | Soustraction - Donne un nombre négatif ou soustrait un nombre d'un autre | a - b donne -11 |
| * | Multiplication - Multiplie deux nombres ou renvoie une chaîne répétée un certain nombre de fois | a * b donne 210 |
| / | Division - x divisé par y | b / a donne 2.1 |
| % | Modulo - Renvoie le reste de la division | b % a donne 1 |
| ** | Exposant - Renvoie x à la puissance y | a**b est 10 à la puissance 21 |
| // | Division entière - Arrondit à l'entier inférieur |
>>> 9//2 4 >>> -9//2 -5 |
L'exemple suivant démontre le fonctionnement de tous les opérateurs arithmétiques en Python :
Exemple (Python 3.0+)
L'exemple ci-dessus produit :
1 - c 的值为: 31 2 - c 的值为: 11 3 - c 的值为: 210 4 - c 的值为: 2.1 5 - c 的值为: 1 6 - c 的值为: 8 7 - c 的值为: 2
Opérateurs de comparaison Python
Ce qui suit suppose que la variable a vaut 10 et que la variable b vaut 20 :
| Operator | Description | Exemple |
|---|---|---|
| == | Égal à - Compare si les objets sont égaux | (a == b) renvoie False. |
| != | Différent de - Compare si deux objets ne sont pas égaux | (a != b) renvoie True. |
| > | Supérieur à - Renvoie si x est supérieur à y | (a > b) renvoie False. |
| < | Inférieur à - Renvoie si x est inférieur à y. Tous les opérateurs de comparaison renvoient 1 pour vrai et 0 pour faux. Ceux-ci sont respectivement équivalents aux variables spéciales True et False. Notez la casse de ces noms de variables. | (a < b) renvoie True. |
| >= | Supérieur ou égal à - Renvoie si x est supérieur ou égal à y. | (a >= b) renvoie False. |
| <= | Inférieur ou égal à - Renvoie si x est inférieur ou égal à y. | (a <= b) renvoie True. |
L'exemple suivant démontre le fonctionnement de tous les opérateurs de comparaison en Python :
Exemple (Python 3.0+)
L'exemple ci-dessus produit :
1 - a 不等于 b 2 - a 不等于 b 3 - a 大于等于 b 4 - a 大于 b 5 - a 小于等于 b 6 - b 大于等于 a
Opérateurs d'affectation Python
Ce qui suit suppose que la variable a vaut 10 et que la variable b vaut 20 :
| Operator | Description | Exemple |
|---|---|---|
| = | Opérateur d'affectation simple | c = a + b affecte le résultat de a + b à c |
| += | Opérateur d'affectation par addition | c += a équivaut à c = c + a |
| -= | Opérateur d'affectation par soustraction | c -= a équivaut à c = c - a |
| *= | Opérateur d'affectation de multiplication | c *= a est équivalent à c = c * a |
| /= | Opérateur d'affectation de division | c /= a est équivalent à c = c / a |
| %= | Opérateur d'affectation modulo | c %= a est équivalent à c = c % a |
| **= | Opérateur d'affectation d'exposant | c **= a est équivalent à c = c ** a |
| //= | Opérateur d'affectation de division entière | c //= a est équivalent à c = c // a |
| := | Opérateur Walrus, son objectif principal est d'effectuer une affectation et de renvoyer la valeur affectée simultanément dans une expression.Nouvel opérateur ajouté dans Python 3.8。 | Dans cet exemple, l'expression d'affectation évite d'appeler len() deux fois : if (n := len(a)) > 10:
print(f"List is too long ({n} elements, expected <= 10)")
|
L'exemple suivant montre le fonctionnement de tous les opérateurs d'affectation en Python :
Exemple (Python 3.0+)
L'exemple ci-dessus produit :
1 - c 的值为: 31 2 - c 的值为: 52 3 - c 的值为: 1092 4 - c 的值为: 52.0 5 - c 的值为: 2 6 - c 的值为: 2097152 7 - c 的值为: 99864
À partir de Python 3.8, une nouvelle fonctionnalité de syntaxe appelée « Walrus » a été introduite, qui utilise le symbole:=. L'objectif principal de cet opérateur est de réaliser une affectation et de renvoyer la valeur affectée dans une expression.
L'utilisation de l'opérateur walrus peut simplifier le code dans certains cas, lorsque vous devez utiliser la valeur dans une expression. Cela est utile pour simplifier les conditions de boucle et les calculs répétés dans les expressions.
Un exemple simple démontrant l'utilisation de l'opérateur walrus :
Exemple
n = 10
if n > 5:
print(n)
# Utilisation de l'opérateur walrus
if (n := 10) > 5:
print(n)
if (n := 10) > 5:: Ceci est l'opérateur walrus (:=: L'opérateur walrus effectue une opération d'affectation dans une expression.(n := 10): Affecte la variablenà 10 et renvoie la valeur affectée en même temps.> 5: Vérifie si lanest supérieure à 5. Si la condition est vraie, exécutez le bloc de code suivant.
print(n): Si la condition est vraie, affichez la variablen(c'est-à-dire 10).
Avantages de l'opérateur walrus :
- L'opérateur walrus (
:=) permet une affectation au sein d'une expression, ce qui peut réduire la duplication de code et améliorer la lisibilité et la concision du code. - Dans l'exemple ci-dessus, l'approche traditionnelle nécessite une ligne séparée pour affecter
n, puisifinstruction pour vérifier la condition. Avec l'opérateur walrus, le code peutifeffectuer directement l'affectation et la vérification de la condition au sein de l'instruction.
Opérateurs bit à bit Python
Les opérateurs bit à bit traitent les nombres comme des binaires pour le calcul. Les règles des opérations bit à bit en Python sont les suivantes :
Dans le tableau ci-dessous, la variable a vaut 60 et b vaut 13. Les formats binaires sont les suivants :
a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011
| Operator | Description | Exemple |
|---|---|---|
| & | Opérateur ET bit à bit : Pour les deux valeurs impliquées dans l'opération, si les deux bits correspondants sont 1, le bit de résultat est 1 ; sinon, il est 0. | (a & b) renvoie 12. Explication binaire : 0000 1100 |
| | | Opérateur OU bit à bit : Si au moins un des deux bits binaires correspondants est 1, le bit de résultat est 1. | (a | b) renvoie 61. Explication binaire : 0011 1101 |
| ^ | Opérateur OU exclusif bit à bit : Lorsque les deux bits binaires correspondants sont différents, le résultat est 1. | (a ^ b) renvoie 49. Explication binaire : 0011 0001 |
| ~ | Opérateur NON bit à bit : inverse chaque bit binaire des données, transformant les 1 en 0 et les 0 en 1.~xsimilaire à-x-1 | (~a ) renvoie -61. Explication binaire : 1100 0011, sous forme de complément à deux pour un nombre binaire signé. |
| << | Opérateur de décalage à gauche : tous les bits binaires de l’opérande sont décalés vers la gauche d’un nombre spécifié de positions. Le nombre à droite de "<<" spécifie le nombre de positions à décaler. Les bits de poids fort sont supprimés, et les bits de poids faible sont remplis avec 0. | a << 2 renvoie 240. Explication binaire : 1111 0000 |
| >> | Opérateur de décalage à droite : tous les bits binaires de l’opérande à gauche de ">>" sont décalés vers la droite d’un nombre spécifié de positions. Le nombre à droite de ">>" spécifie le nombre de positions à décaler. | a >> 2 renvoie 15. Explication binaire : 0000 1111 |
Les exemples suivants illustrent le fonctionnement de tous les opérateurs bit à bit de Python :
Exemple (Python 3.0+)
La sortie de l'exemple ci-dessus est :
1 - c 的值为: 12 2 - c 的值为: 61 3 - c 的值为: 49 4 - c 的值为: -61 5 - c 的值为: 240 6 - c 的值为: 15
Opérateurs logiques Python
Le langage Python prend en charge les opérateurs logiques. Ce qui suit suppose que la variable a vaut 10 et b vaut 20 :
| Operator | Expression logique | Description | Exemple |
|---|---|---|---|
| et | x and y | ET booléen - Si x est False, x and y renvoie la valeur de x ; sinon, elle renvoie la valeur évaluée de y. | (a and b) renvoie 20. |
| ou | x or y | OU booléen - Si x est True, elle renvoie la valeur de x ; sinon, elle renvoie la valeur évaluée de y. | (a or b) renvoie 10. |
| not | not x | NOT booléen - Si x est True, renvoie False. Si x est False, il renvoie True. | not(a and b) renvoie False |
La sortie de l'exemple ci-dessus est :
Exemple (Python 3.0+)
La sortie de l'exemple ci-dessus est :
1 - 变量 a 和 b 都为 true 2 - 变量 a 和 b 都为 true,或其中一个变量为 true 3 - 变量 a 和 b 有一个不为 true 4 - 变量 a 和 b 都为 true,或其中一个变量为 true 5 - 变量 a 和 b 都为 false,或其中一个变量为 false
Opérateurs d'appartenance de Python
En plus des opérateurs ci-dessus, Python prend également en charge les opérateurs d'appartenance. L'instance de test contient une série de membres, notamment des chaînes de caractères, des listes ou des tuples.
| Operator | Description | Exemple |
|---|---|---|
| in | Renvoie True si une valeur est trouvée dans la séquence spécifiée ; sinon, renvoie False. | x in y séquence : Renvoie True si x est dans la séquence y. |
| not in | Renvoie True si une valeur n'est pas trouvée dans la séquence spécifiée ; sinon, renvoie False. | x not in y séquence : Renvoie True si x n'est pas dans la séquence y. |
Les exemples suivants illustrent le fonctionnement de tous les opérateurs d'appartenance de Python :
Exemple (Python 3.0+)
La sortie de l'exemple ci-dessus est :
1 - 变量 a 不在给定的列表中 list 中 2 - 变量 b 不在给定的列表中 list 中 3 - 变量 a 在给定的列表中 list 中
Opérateurs d'identité Python
Les opérateurs d'identité sont utilisés pour comparer les emplacements mémoire de deux objets.
| Operator | Description | Exemple |
|---|---|---|
| est | L'opérateur is est utilisé pour déterminer si deux identifiants font référence au même objet | x is y, semblable àid(x) == id(y), s'ils font référence au même objet, renvoie True ; sinon, renvoie False. |
| n'est pas | L'opérateur is not est utilisé pour déterminer si deux identifiants font référence à des objets différents | x is not y, semblable àid(x) != id(y). S'ils ne font pas référence au même objet, il renvoie True ; sinon, il renvoie False. |
Remarque : id()La fonction est utilisée pour obtenir l'adresse mémoire d'un objet.
Les exemples suivants illustrent le fonctionnement de tous les opérateurs d'identité Python :
Exemple (Python 3.0+)
La sortie de l'exemple ci-dessus est :
1 - a 和 b 有相同的标识 2 - a 和 b 有相同的标识 3 - a 和 b 没有相同的标识 4 - a 和 b 没有相同的标识
La différence entre is et == :
is est utilisé pour déterminer si deux variables font référence au même objet ; == est utilisé pour déterminer si les valeurs des variables référencées sont égales.
>>>a = [1, 2, 3] >>> b = a >>> b is a True >>> b == a True >>> b = a[:] >>> b is a False >>> b == a True
Précédence des opérateurs Python
Le tableau suivant répertorie tous les opérateurs, de la priorité la plus élevée à la plus faible. Les opérateurs dans la même cellule ont la même priorité. Les opérateurs se rapportent à des opérations binaires, sauf indication contraire. Les opérateurs dans la même cellule sont regroupés de gauche à droite (sauf l’exponentiation, qui est regroupée de droite à gauche) :
Operator |
Description |
|---|---|
|
Expressions entre parenthèses |
|
Indiçage, découpage, appel, référence d’attribut |
await x |
expression await |
|
Exponentiation (puissance) |
|
Positif, négatif, NON binaire |
|
Multiplication, multiplication matricielle, division, division entière, reste |
|
Addition et soustraction |
|
Décalages |
|
ET bit à bit |
|
OU exclusif bit à bit |
|
OU bit à bit |
|
Comparaisons, y compris les tests d'appartenance et les tests d'identité |
|
NOT booléen |
|
ET booléen |
|
OR booléen |
|
Expression conditionnelle |
|
expression lambda |
|
expression d'affectation |
Les exemples suivants illustrent le fonctionnement de toutes les règles de priorité des opérateurs Python :
Exemple (Python 3.0+)
La sortie de l'exemple ci-dessus est :
(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 a une priorité plus élevée :
Exemple
L'exemple ci-dessus évalue d'abordy and zet renvoie False, puisx or Falserenvoie True, et le résultat affiché est :
情况1:默认优先级(先算and) yes 情况2:强制改变优先级(先算or) no
Autres extensionsRemarque :Python3 ne prend plus en charge l'opérateur<>, vous pouvez utiliser!=à la place, si vous avez vraiment besoin d'utiliser cet opérateur de comparaison, vous pouvez utiliser la méthode suivante :
>>> from __future__ import barry_as_FLUFL >>> 1 <> 2 True