Quelques astuces Python à la volée pour faciliter la prise en main du langage au début.
any retourne True si un élément de la liste est True. En l’occurrence, dans cet exemple, si je cherche à savoir si un élément de ma liste est pair :
any(a % 2==0 for a in range(0,6,2)) > True
De même, si je change le pas, tous les éléments ne sont pas pairs :
any(a % 2==0 for a in range(1,6,1)) > True
all retourne True si tous les éléments sont True. Avec le même exemple :
all(a % 2==0 for a in range(0,6,2)) > True
Cette fois en revanche, puisque tous les éléments ne sont pas pairs, la fonction retourne False.
all(a % 2==0 for a in range(0,6,1)) > False
Pour résumer :
any | all | |
(True, True, True) | True | True |
(True, False, False) | True | False |
(True, True, False) | True | False |
() | False | True |
- Concaténer des strings avec join
s = ["word","another", "and again", ""] " ".join(s) > 'word another and again '
- Initialiser une liste avec des nombre identiques
[0]* 5 > [0, 0, 0, 0, 0]
- Unpack les éléments d’une liste sans indiquer explicitement toutes les variables réceptrices.
Pour rappel, la fonction unpack sort les valeurs dans leur format original dans un tuple. Par exemple :
p = ("red", 1, True) (eyes_color, age, is_male) = p
En revanche, et c’est là tout l’intérêt des arguments optionnels, il est possible de ne pas spécifier toutes les variables. Par exemple, on a :
a, *b, c = [1, 2, 3, 4, 5]
Le programme s’est débrouillé pour répartir les valeurs :
a > 1 b > [2, 3, 4] c > 5
- L’opérateur splat
On peut multiplier une string par un nombre pour obtenir une string modifiée :
print("word" * 3) > wordwordword
Comme vu précédemment, on peut utiliser cet opérateur pour l’unpacking de valeurs. Utile pour ne pas avoir à gérer plusieurs variables. Il est par ailleurs bon de savoir que ça fonctionne également avec des slices par exemple :
s = [1, 2, 3, "a string"] print_elements(*s[:-1]) > 1 2 3
- Le while else
n = 0 while n < 10: n += 1 else: print("finished")