Voici une méthode simple pour permuter 2 nombres :
x = 10
y = 20
x, y = y, x
Résultat x = 20 et y = 10
Avec Python, on peut enchaîner les opérateurs au lieu d’utiliser simultanément les opérateurs logiques et les opérateurs de comparaison.
Le code suivant :
x = 20
y = 40
z = 60
if x < y and y < z:
print("z est plus grand que que x et y")
else:
print("z n'est pas le plus grand")
peut donc être remplacé par ce code :
x = 20
y = 40
z = 60
if x < y < z:
print("z est plus grand que que x et y")
else:
print("z n'est pas le plus grand")
Cette opérateur permet d'écrire une instruction if - else sur une seule ligne.
On l'utilise de cette manière :
[valeur_si_vrai] if condition else [valeur_si_faux]
Exemple :
age = 30
msg = "majeur" if age >= 18 else "mineur"
Résultat : msg = "majeur"
Cet opérateur peut aussi être utilisé dans la compréhension de liste :
liste = [x+2 if x > 10 else x+4 for x in range(20)]
Résultat : liste = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 13, 14, 15, 16, 17, 18, 19, 20, 21]
import numpy as np
print(np)
Inverser la liste elle-même
liste = [2, 4, 8, 9]
liste.reverse()
# autre méthode
liste = liste[::-1]
Inverser dans une boucle
liste = [2, 4, 8, 9]
for i in reversed(liste):
print(i)
L'opérateur in permet de voir si un élément est inclus dans une liste, un ensemble ou un dictionnaire.
x = [1, 3, 8, 127, 45]
print(8 in x) # True
Pour les dictionnaire le test est fait sur la clé et non sur la valeur
personne = {"nom": "Dupond", "prenom": "Eric", "date de naissance": "01/01/2024"}
print('nom' in personne)
La fonction any renvoie True si tout les éléments itérable donné donne True.
La fonction all renvoie True si un des éléments itérable donné donne True.
Ces 2 fonctions peuvent être très utiles avec les compréhensions de liste.
Par exemple on test si tout les éléments sont impair avec la fonction all et si au moins un élément est impair avec la fonction any :
ma_liste = [2, 5, 8, 12,48]
all([x%2 for x in ma_liste]) # False
any([x%2 for x in ma_liste]) # True