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

De Justine's wiki
Aller à la navigation Aller à la recherche
(Page créée avec « 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é appar... »)
 
Aucun résumé des modifications
 
(2 versions intermédiaires par la même utilisatrice non affichées)
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 43 : Ligne 45 :


Je ne comprend pas trop ce que ça fait au delà de 1, mais ça sort le plus grand chiffre.
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>

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>