Tout comme en mathématiques, les langages de programmation tels que Python disposent d'opérateurs. Vous pouvez les considérer comme des fonctions extrêmement simples qui sont à la base de l'informatique. Il s'agit des opérations les plus simples auxquelles un programme informatique peut être réduit. Il s'agit de connaissances essentielles pour tout scientifique de données ou ingénieur logiciel en herbe.
Si vous souhaitez en savoir plus sur les bases du langage de programmation Python, ne manquez pas de consulter notre cours gratuit Intro to Python for Data Science.
Opérateurs arithmétiques
Vous les connaissez probablement déjà, puisqu'ils sont issus des mathématiques de base.
Les opérateurs arithmétiques sont l'addition (+), la soustraction (-), la multiplication (*), la division (/), l'exposant (**), la division plancher (//) et le module (%). Les quatre premières sont assez simples : il s'agit de l'addition, de la soustraction, de la multiplication et de la division, et vous les connaissez probablement déjà.
# Additionprint(5+2)# Subtractionprint(5-2)# Multiplicationprint(5*2)# Divisionprint(5/2)Propulsé par
Les trois autres sont un peu plus complexes. L'opérateur exposant signifie "élevé à la puissance de". Par exemple, 2 ** 3 signifie que 2 est multiplié par lui-même 3 fois, de sorte que 2 ** 3 est identique à 2 * 2 * 2, qui est égal à 8.
La division par étage est identique à la division normale, à ceci près que le résultat est toujours arrondi à la valeur inférieure. Dans l'exemple ci-dessous, 5 est divisé par 2, ce qui donne 2,5. Mais comme il s'agit de la division plancher, 2,5 est arrondi à 2.
Enfin, le module est le reste après la division. Dans le cas de 5%2, le chiffre 2 ne tient que deux fois dans 5, ce qui signifie que le reste est 1.
# Exponentprint(5**2)# This is the same as 5 * 5# Floor Divisionprint(5//2)# Modulusprint(5%2)Propulsé par
En Python, l'opérateur d'addition peut également être utilisé pour concaténer des chaînes de caractères. Cela signifie qu'ils seront assemblés en une seule chaîne, par exemple :
firstName ="Théo"
introduction ="Hi, my name is "+ firstName +"."print(introduction)Propulsé par
Si vous avez une certaine expérience de la programmation, vous avez certainement déjà utilisé des opérateurs d'affectation. Ils attribuent une certaine valeur à une variable. Le plus utilisé est =. Pour l'utiliser, il suffit de taper le nom de la variable à laquelle vous voulez attribuer une nouvelle valeur, le =, et la valeur que vous souhaitez voir attribuer. Par exemple, si vous souhaitez affecter la valeur 100 à la variable balance, vous pouvez procéder comme suit :
Si vous souhaitez incrémenter la valeur de balance de 10, vous pouvez utiliser balance += 10. C'est l'équivalent de balance = balance + 10, mais c'est beaucoup plus court.
Les autres opérateurs d'affectation fonctionnent exactement de la même manière. Il s'agit de
*=
/=
**=
//=
%=
Opérateurs de comparaison
Vous pouvez utiliser des opérateurs de comparaison pour, vous l'aurez deviné, comparer les valeurs des variables. Ils renvoient toujours une valeur booléenne, qui est soit True soit False. Ils sont au nombre de six :
a =3
b =5print(a == b)# Equalprint(a != b)# Not equalprint(a > b)# Greater thanprint(a < b)# Less thanprint(a >= b)# Greater than or equal toprint(a <= b)# Less than or equal toPropulsé par
== et != peuvent également être utilisés pour comparer des chaînes de caractères au lieu de nombres. Les autres opérateurs ne sont pas compatibles avec les chaînes de caractères, car une chaîne ne peut pas être plus grande qu'une autre chaîne.
print("Hello"=="World")print("Python"!="R")Propulsé par
Vous les connaissez peut-être déjà ! En logique, ils sont appelés connecteurs logiques. Ils sont également largement utilisés dans le langage humain. Il s'agit de : and, or et not.
and ne renverra True que si les deux opérandes (les deux objets booléens que vous comparez) sont True. Par exemple :
print(TrueandTrue)print(TrueandFalse)print(FalseandFalse)Propulsé par
Rappelez-vous que vous avez vu précédemment comment + peut être utilisé pour additionner des nombres, mais qu'il peut également être utilisé pour concaténer, ou combiner des chaînes de caractères. Le site + fonctionne donc différemment selon le type d'objet sur lequel vous l'utilisez. Mais ce ne sera pas toujours le cas. Parfois, l'opérateur avec lequel vous travaillez ne prend tout simplement pas en charge le type d'objet sur lequel vous souhaitez l'utiliser.
En voici un exemple. Supposons que vous ayez deux objets Dog, ozzy et filou. Ils appartiennent à la classe Dog ci-dessous. Vous pouvez considérer la classe comme un plan de ce à quoi les objets doivent ressembler et comment ils doivent se comporter. Dans ce cas, les objets Dog ont un nom, un âge et une taille. Une fois la classe définie, vous pouvez instancier des objets. L'un d'entre eux est Ozzy, âgé de 3 ans et mesurant 30 centimètres. L'autre est Filou, il a 5 ans et mesure 65 centimètres.
Cet exemple utilise le concept de programmation orientée objet. Si vous souhaitez en savoir plus, lisez notre tutoriel sur la programmation orientée objet en Python.
Supposons que vous souhaitiez comparer les deux chiens à l'aide de la fonction plus grand que : >. Cela ne fonctionnera pas. Vous obtiendrez une erreur indiquant '>' not supported between instances of 'Dog' and 'Dog'. Cela signifie que > ne sait pas comment comparer les objets de la classe Dog.
classDog:def__init__(self, name, age, height):
self.name = name
self.age = age
self.height = height
ozzy = Dog("Ozzy",3,30)
filou = Dog("Filou",5,65)print(filou > ozzy)Propulsé par
---------------------------------------------------------------------------
TypeError Traceback(most recent call last)<ipython-input-96-428069ab24cc>in<module>()9 filou =Dog("Filou",5,65)10--->11print(filou > ozzy)TypeError:'>' not supported between instances of'Dog' and 'Dog'Propulsé par
Heureusement, avec la surcharge d'opérateur, vous pouvez définir le comportement de l'opérateur lorsqu'il est appelé sur des objets Dog. Dans ce cas, il convient de définir une méthode appelée __gt__, qui signifie "plus grand que", et qui prend en compte deux arguments. Puisque nous voulons comparer nos chiens sur leur taille, la méthode renvoie self.height > other.height.
classDog:def__init__(self, name, age, height):
self.name = name
self.age = age
self.height = height
def__gt__(self,other):return self.height > other.height
ozzy = Dog("Ozzy",3,30)
filou = Dog("Filou",5,65)print(filou > ozzy)print(ozzy > filou)Propulsé par
Comment savoir lequel sera exécuté en premier ? Comment devez-vous lire une ligne de code contenant de nombreux symboles ? L'exécution se fait-elle de gauche à droite ou dans un ordre précis ?
C'est là qu'intervient la préséance. Les opérateurs Python sont exécutés dans un ordre bien précis, et certains ont la priorité sur d'autres.
Dans le tableau suivant, vous pouvez voir la préséance des opérateurs, dans l'ordre de haut en bas. Ces règles sont les mêmes en mathématiques, où certains calculs d'une formule doivent être effectués avant d'autres.
Priorité
Opérateur
Description
1
**
exposant
2
*, /, %, //
multiplier, diviser, modulo, division par étage
3
+, -
plus, moins
4
>, <, >=, <=
comparison
5
==, !=
l'égalité
6
= %= /= //= -= += *= **=
affectation
7
et, ou, pas
logique
L'associativité
Vous avez pu constater que l'antériorité est importante ! Mais qu'en est-il de ceux qui sont au même niveau de priorité, comme la multiplication et la division ? Sont-ils exécutés en même temps ? No. *, \, % et \\ sont exécutés de gauche à droite, tandis que ** est exécuté de droite à gauche. C'est ce qu'on appelle l'associativité.
Regardez l'exemple suivant. Dans ce cas, les opérateurs sont exécutés de gauche à droite, et le résultat est 3.
En ajoutant des parenthèses, vous pouvez toutefois modifier l'ordre d'exécution des opérateurs. Il s'agit de l'associativité, qui fonctionne de la même manière que l'associativité en mathématiques. Ce qui se trouve entre les crochets sera calculé en premier. Dans ce cas, la division de l'étage sera effectuée en premier, suivie de la multiplication.
Vous savez maintenant ce que sont les opérateurs, comment les utiliser et comment ils fonctionnent. Vous avez également appris ce que sont la surcharge, la précédence et l'associativité. Vous êtes en bonne voie pour devenir un maître de Python ! Si vous voulez en apprendre encore plus, n'hésitez pas à consulter notre cours Python intermédiaire pour la science des données.
Initiez-vous aux structures de données de Python : apprenez-en plus sur les types de données et les structures de données primitives et non primitives, telles que les chaînes de caractères, les listes, les piles, etc.
Découvrez les fonctions et méthodes des listes Python. Veuillez suivre les exemples de code pour list() et d'autres fonctions et méthodes Python dès maintenant.
Tutoriel complet d'introduction aux boucles Python. Apprenez et pratiquez les boucles while et for, les boucles imbriquées, les mots-clés break et continue, la fonction range et bien plus encore.
Tout comme en mathématiques, les langages de programmation tels que Python disposent d'opérateurs. Vous pouvez les considérer comme des fonctions extrêmement simples qui sont à la base de l'informatique. Il s'agit des opérations les plus simples auxquelles un programme informatique peut être réduit. Il s'agit de connaissances essentielles pour tout scientifique de données ou ingénieur logiciel en herbe.
Dans ce tutoriel, vous apprendrez
Si vous souhaitez en savoir plus sur les bases du langage de programmation Python, ne manquez pas de consulter notre cours gratuit Intro to Python for Data Science.
Opérateurs arithmétiques
Vous les connaissez probablement déjà, puisqu'ils sont issus des mathématiques de base.
Les opérateurs arithmétiques sont l'addition (
+), la soustraction (-), la multiplication (*), la division (/), l'exposant (**), la division plancher (//) et le module (%). Les quatre premières sont assez simples : il s'agit de l'addition, de la soustraction, de la multiplication et de la division, et vous les connaissez probablement déjà.Les trois autres sont un peu plus complexes. L'opérateur exposant signifie "élevé à la puissance de". Par exemple,
2 ** 3signifie que2est multiplié par lui-même3fois, de sorte que2 ** 3est identique à2 * 2 * 2, qui est égal à 8.La division par étage est identique à la division normale, à ceci près que le résultat est toujours arrondi à la valeur inférieure. Dans l'exemple ci-dessous, 5 est divisé par 2, ce qui donne 2,5. Mais comme il s'agit de la division plancher, 2,5 est arrondi à 2.
Enfin, le module est le reste après la division. Dans le cas de
5%2, le chiffre 2 ne tient que deux fois dans 5, ce qui signifie que le reste est 1.En Python, l'opérateur d'addition peut également être utilisé pour concaténer des chaînes de caractères. Cela signifie qu'ils seront assemblés en une seule chaîne, par exemple :
Opérateurs d'affectation
Si vous avez une certaine expérience de la programmation, vous avez certainement déjà utilisé des opérateurs d'affectation. Ils attribuent une certaine valeur à une variable. Le plus utilisé est
=. Pour l'utiliser, il suffit de taper le nom de la variable à laquelle vous voulez attribuer une nouvelle valeur, le=, et la valeur que vous souhaitez voir attribuer. Par exemple, si vous souhaitez affecter la valeur 100 à la variablebalance, vous pouvez procéder comme suit :Si vous souhaitez incrémenter la valeur de
balancede 10, vous pouvez utiliserbalance += 10. C'est l'équivalent debalance = balance + 10, mais c'est beaucoup plus court.Il en va de même pour
-=,balance -= 10est identique àbalance = balance - 10:Les autres opérateurs d'affectation fonctionnent exactement de la même manière. Il s'agit de
*=/=**=//=%=Opérateurs de comparaison
Vous pouvez utiliser des opérateurs de comparaison pour, vous l'aurez deviné, comparer les valeurs des variables. Ils renvoient toujours une valeur booléenne, qui est soit
TruesoitFalse. Ils sont au nombre de six :==!=><>=<=Voici quelques exemples de comparaisons :
==et!=peuvent également être utilisés pour comparer des chaînes de caractères au lieu de nombres. Les autres opérateurs ne sont pas compatibles avec les chaînes de caractères, car une chaîne ne peut pas être plus grande qu'une autre chaîne.Opérateurs logiques
Vous les connaissez peut-être déjà ! En logique, ils sont appelés connecteurs logiques. Ils sont également largement utilisés dans le langage humain. Il s'agit de :
and,oretnot.andne renverra True que si les deux opérandes (les deux objets booléens que vous comparez) sont True. Par exemple :Pour comprendre le comportement de cet opérateur logique, vous pouvez utiliser un tableau de vérité :
orest Vrai, chaque fois qu'un (ou plusieurs) opérande est Vrai.Notez qu' ils fonctionnent également avec plus de deux opérandes, par exemple :
notrenvoie l'inverse de son opérande, doncTruesiFalseest donné et vice-versa.Surcharge de l'opérateur
Rappelez-vous que vous avez vu précédemment comment
+peut être utilisé pour additionner des nombres, mais qu'il peut également être utilisé pour concaténer, ou combiner des chaînes de caractères. Le site+fonctionne donc différemment selon le type d'objet sur lequel vous l'utilisez. Mais ce ne sera pas toujours le cas. Parfois, l'opérateur avec lequel vous travaillez ne prend tout simplement pas en charge le type d'objet sur lequel vous souhaitez l'utiliser.En voici un exemple. Supposons que vous ayez deux objets
Dog,ozzyetfilou. Ils appartiennent à la classeDogci-dessous. Vous pouvez considérer la classe comme un plan de ce à quoi les objets doivent ressembler et comment ils doivent se comporter. Dans ce cas, les objetsDogont un nom, un âge et une taille. Une fois la classe définie, vous pouvez instancier des objets. L'un d'entre eux est Ozzy, âgé de 3 ans et mesurant 30 centimètres. L'autre est Filou, il a 5 ans et mesure 65 centimètres.Cet exemple utilise le concept de programmation orientée objet. Si vous souhaitez en savoir plus, lisez notre tutoriel sur la programmation orientée objet en Python.
Supposons que vous souhaitiez comparer les deux chiens à l'aide de la fonction plus grand que :
>. Cela ne fonctionnera pas. Vous obtiendrez une erreur indiquant'>' not supported between instances of 'Dog' and 'Dog'. Cela signifie que>ne sait pas comment comparer les objets de la classeDog.Heureusement, avec la surcharge d'opérateur, vous pouvez définir le comportement de l'opérateur lorsqu'il est appelé sur des objets
Dog. Dans ce cas, il convient de définir une méthode appelée__gt__, qui signifie "plus grand que", et qui prend en compte deux arguments. Puisque nous voulons comparer nos chiens sur leur taille, la méthode renvoieself.height > other.height.Priorité
Lorsque vous combinez plusieurs opérateurs, les choses peuvent devenir confuses. Regardez l'exemple ci-dessous :
Comment savoir lequel sera exécuté en premier ? Comment devez-vous lire une ligne de code contenant de nombreux symboles ? L'exécution se fait-elle de gauche à droite ou dans un ordre précis ?
C'est là qu'intervient la préséance. Les opérateurs Python sont exécutés dans un ordre bien précis, et certains ont la priorité sur d'autres.
Dans le tableau suivant, vous pouvez voir la préséance des opérateurs, dans l'ordre de haut en bas. Ces règles sont les mêmes en mathématiques, où certains calculs d'une formule doivent être effectués avant d'autres.
L'associativité
Vous avez pu constater que l'antériorité est importante ! Mais qu'en est-il de ceux qui sont au même niveau de priorité, comme la multiplication et la division ? Sont-ils exécutés en même temps ? No.
*,\,%et\\sont exécutés de gauche à droite, tandis que**est exécuté de droite à gauche. C'est ce qu'on appelle l'associativité.Regardez l'exemple suivant. Dans ce cas, les opérateurs sont exécutés de gauche à droite, et le résultat est 3.
En ajoutant des parenthèses, vous pouvez toutefois modifier l'ordre d'exécution des opérateurs. Il s'agit de l'associativité, qui fonctionne de la même manière que l'associativité en mathématiques. Ce qui se trouve entre les crochets sera calculé en premier. Dans ce cas, la division de l'étage sera effectuée en premier, suivie de la multiplication.
Conclusion
Vous savez maintenant ce que sont les opérateurs, comment les utiliser et comment ils fonctionnent. Vous avez également appris ce que sont la surcharge, la précédence et l'associativité. Vous êtes en bonne voie pour devenir un maître de Python ! Si vous voulez en apprendre encore plus, n'hésitez pas à consulter notre cours Python intermédiaire pour la science des données.