Xavier Lamorlette
Enumenumeratefor … elseiter()match … casetry … except … else … finallyvars()with[expression for item in list if predicate]
if predicate est optionnel.expression peut utiliser item.Enumfrom enum import Enum, unique
@unique
class MyEnumeration(Enum):
    A = 0
    B = 1
StrEnum et IntEnum sont des enums dont les membres sont respectivement des strings et des ints :
from enum import auto, IntEnum, StrEnum
class Color(StrEnum):
    BLUE = 'b'
    GREEN = auto()
print(Color.BLUE)  # b
print(Color.GREEN)  # green
class Number(IntEnum):
    ONE = 1
Number.ONE + 1  # 2
enumerateenumerate permet de récupérer en même temps l'élément et son indice depuis une liste :
toto: List[]
for index, item in enumerate(toto):
   …
enumerate renvoie des tuples :
toto: List[]
for index_item in enumerate(toto):
   print("toto[%d] = %r" % index_item)
for … elseLe bloc else est exécuté à la fin de la boucle, sauf en cas de break, de return ou d'exception.
for item in collection:
   if condition:
      break
else:
   # condition was not met
   …
Le bloc else permet d'éviter de mettre un drapeau dans la boucle conditionnelle :
condition_met = False
for item in collection:
   if condition:
      condition_met = True
      break
if not condition_met:
   …
Dans un cas simple comme ci-dessus, en fait, il vaut mieux utiliser any :
if any(condition(item) for item in collection):
    …
else:
    …
Raccourci pour afficher le contenu d'une variable :
print(f"{foo=}")
iter()for x in iter(a_function, stop_value):
   …
est équivalent à :
x = a_function()
while x != stop_value:
    …
    x = a_function()
if __name__ == "__main__":
    …
match … casematch variable:
    case value_1:
        …
    case _other:  # all other values
        …
a_list[start:stop:step]
try … except … else … finallyLe bloc optionnel else est exécuté si aucune exception n'a été levée.
Le bloc optionnel finally est exécuté dans tous les cas.
try:
    …
except Exception:
    # execption handling
    …
else:
    # no exception was raised
    …
finally:
    # clean-up
    …
vars()vars(…) donne le contenu d'un espace de nommage (variable, classe, module…) (sous la forme d'un dictionnaire).
Exemple : vars(Class) est équivalent à Class.__dict__.
def foo() -> Optional:
    …
if bar := foo():
    return bar
if (n := len(a)) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")
[clean_name.title() for name in names if (clean_name := normalize(name)) in allowed_names]
withwith permet de créer un objet dans un contexte qui est automatiquement détruit, même en cas d'exception.
with open(file_path, 'w') as file:
    file.write("toto)
Une clause with peut contenir la construction de plusieurs objets, séparés par des virgules: with … as …, … as …:.
La dernière mise à jour de cette page date de août 2025.
Le contenu de ce site est, en tant qu'œuvre originale de l'esprit, protégé par le droit d'auteur.
        Pour tout commentaire, vous pouvez m'écrire à xavier.lamorlette@gmail.com.