Le chat d'octets

Photo de Gribouille

Quelques astuces python

Échanger 2 nombres

Voici une méthode simple pour permuter 2 nombres :

x = 10
y = 20
x, y = y, x

Résultat x = 20 et y = 10 

Chaînage d'opérateurs de comparaison

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")

L'Opérateur conditionnel ternaire

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]

Afficher le chemin d'un module

import numpy as np
print(np)

Inverser une liste

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)

Opérateur in

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)

Fonction any et all

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