« Python : Opérateurs » : différence entre les versions

De Justine's wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
 
(Une version intermédiaire par la même utilisatrice non affichée)
Ligne 1 : Ligne 1 :
[[Category:prog]]
[[Category:python]]
Cette page liste quelques opérateurs peu courants. Sûrement pas exhaustif ! Ne rêvez pas.
Cette page liste quelques opérateurs peu courants. Sûrement pas exhaustif ! Ne rêvez pas.


Ligne 45 : Ligne 47 :


= :=, dit "walrus operator" =
= :=, dit "walrus operator" =
Cet
Cet opérateur tout mignon est surnommé "walrus" à cause de sa ressemblance avec une tête de morse.
 
La doc Python le décrit comme : "[...]a new syntax := that assigns values to variables as part of a larger expression". En gros, il permet d'assigner une valeur au sein d'un test, ce qui permet de gagner du temps :
 
<source lang="python">
>>> a = 50
>>> if (b := a) < 75:
...    print("smol")
smol
</source>
 
Il permet aussi de tester si l'assignation est possible. Attention, si on essaie d'assigner une variable indéfinie, Python plante quand même :
<source lang="python">
>>> a = "oui"
>>> if b := a:
...    print("oui")
oui
>>> if b := c:
...    print("oui")
... else:
...    print("non")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'c' is not defined
 
name 'c' is not defined
</source>

Dernière version du 22 juin 2022 à 12:06

Cette page liste quelques opérateurs peu courants. Sûrement pas exhaustif ! Ne rêvez pas.

|, le "bitwise OR"

Dictionnaires

Il s'agit d'une nouveauté apparue dans la 3.9.

On peut merger des dictionnaires avec l'opérateur |. Il existe aussi l'opérateur |= qui permet de faire la même chose (de la même façon que += permet de faire la même chose que a = a+1).

Cet opérateur effectue une "merge-right", un exemple sera plus parlant :

<source lang="python"> d1 = {"a": 0, "b": 1, "c": 2} d2 = {"c": 20, "d": 30}

>>> d1 | d2 {"a": 0, "b": 1, "c": 20, "d": 30} >>> d1 {"a": 0, "b": 1, "c": 2}

>>> # Update, |= >>> d1 |= d2 >>> d1 {"a": 0, "b": 1, "c": 20, "d": 30} </source>

Ensembles

Dans les ensembles, cet opérateur a une fonction d'union. Voir la page sur les ensembles

Nombres

Avec des nombres, il s'agit d'un OR binaire. <source lang="python"> >>> 0 | 1 1 >>> 0 | 0 0 >>> 6 | 7 7 </source>

Je ne comprend pas trop ce que ça fait au delà de 1, mais ça sort le plus grand chiffre.

:=, dit "walrus operator"

Cet opérateur tout mignon est surnommé "walrus" à cause de sa ressemblance avec une tête de morse.

La doc Python le décrit comme : "[...]a new syntax := that assigns values to variables as part of a larger expression". En gros, il permet d'assigner une valeur au sein d'un test, ce qui permet de gagner du temps :

<source lang="python"> >>> a = 50 >>> if (b := a) < 75: ... print("smol") smol </source>

Il permet aussi de tester si l'assignation est possible. Attention, si on essaie d'assigner une variable indéfinie, Python plante quand même : <source lang="python"> >>> a = "oui" >>> if b := a: ... print("oui") oui >>> if b := c: ... print("oui") ... else: ... print("non") Traceback (most recent call last):

 File "<stdin>", line 1, in <module>

NameError: name 'c' is not defined

name 'c' is not defined </source>