Xavier Lamorlette
Sommaire :
Enum
enumerate
for … else
iter()
match … case
try … except … else … finally
vars()
with
[expression for item in list if predicate]
if predicate
est optionnel.expression
peut utiliser item
.Enum
from enum import Enum, unique
@unique
class MyEnumeration(Enum):
A = 0
B = 1
enumerate
enumerate
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 … else
Le 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 … case
match variable:
case value_1:
…
case _other: # all other values
…
a_list[start:stop:step]
try … except … else … finally
Le 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]
with
with
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 mai 2024.
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.