Aller au contenu

27 Astuces

Table des matières
- [Itérer à la fois sur les indices et les éléments d’une liste ou les caractères d’une chaîne](#itérer-à-la-fois-sur-les-indices-et-les-éléments-d-and-rsquo-une-liste-ou-les-caractères-d-and-rsquo-une-chaîne) - [Calculer le quotient et le reste d’une division euclidienne en même temps](#calculer-le-quotient-et-le-reste-d-and-rsquo-une-division-euclidienne-en-même-temps) - [Image de fond dans Tkinter](#image-de-fond-dans-tkinter) - [Emoji dans Python](#emoji-dans-python) - [Inputs multiples](#inputs-multiples) - [Échanger le contenu de deux variables](#échanger-le-contenu-de-deux-variables) - [Compréhensions de listes](#compréhensions-de-listes) - [Nombre variable de paramètres d’une fonction](#nombre-variable-de-paramètres-d-and-rsquo-une-fonction) - [Différentes façons d’entrer de passer des paramètres à une fonction](#différentes-façons-d-and-rsquo-entrer-de-passer-des-paramètres-à-une-fonction) - [Fonction retournant de multiples valeurs](#fonction-retournant-de-multiples-valeurs) - [Créer une chaîne de caractère à partir des éléments d’une liste](#créer-une-chaîne-de-caractère-à-partir-des-éléments-d-and-rsquo-une-liste) - [Afficher une chaîne de caractères plusieurs fois](#afficher-une-chaîne-de-caractères-plusieurs-fois) - [Inverser une liste ou une chaîne de caractère](#inverser-une-liste-ou-une-chaîne-de-caractère) - [Obtenir une seule liste à partir d’une liste de listes](#obtenir-une-seule-liste-à-partir-d-and-rsquo-une-liste-de-listes) - [Inverser les clés et les valeurs d’un dictionnaire](#inverser-les-clés-et-les-valeurs-d-and-rsquo-un-dictionnaire) - [Afficher votre version de Python](#afficher-votre-version-de-python) - [Séparer des variables avec un symbole particulier lors de l’affichage](#séparer-des-variables-avec-un-symbole-particulier-lors-de-l-and-rsquo-affichage) - [Mettre en majuscule la première lettre de chaque mot](#mettre-en-majuscule-la-première-lettre-de-chaque-mot) - [For... Else](#for-dot-dot-dot-else) - [Fusionner deux dictionnaires](#fusionner-deux-dictionnaires) - [Python et le format JSON](#python-et-le-format-json) - [Exemple de données au format JSON](#exemple-de-données-au-format-json) - [Importer un fichier JSON en Python avec `json.load()`](#importer-un-fichier-json-en-python-avec-json-dot-load) - [Enregistrer les donnés d’un dictionnaire Python sous forme d’un fichier JSON avec `json.dump()`](#enregistrer-les-donnés-d-and-rsquo-un-dictionnaire-python-sous-forme-d-and-rsquo-un-fichier-json-avec-json-dot-dump) - [Définir une fonction avec le mot clé lambda](#définir-une-fonction-avec-le-mot-clé-lambda) - [Un langage proche du pseudocode](#un-langage-proche-du-pseudocode) - [Aficher la liste des méthodes liées à un objet](#aficher-la-liste-des-méthodes-liées-à-un-objet) - [Écrire et lire des grands nombres](#écrire-et-lire-des-grands-nombres)

Itérer à la fois sur les indices et les éléments d’une liste ou les caractères d’une chaîne⚓︎

🐍 Script Python
s = "Python"
e = enumerate(s)
print(list(e))

ma_liste = [12, -3, 1, 0, 17]
enum_ma_liste = enumerate(ma_liste)
print(list(enum_ma_liste))

for i, e in enumerate(ma_liste):
    print(f"L'élément {e} a pour indice {i}")
📋 Texte
[(0, 'P'), (1, 'y'), (2, 't'), (3, 'h'), (4, 'o'), (5, 'n')]
[(0, 12), (1, -3), (2, 1), (3, 0), (4, 17)]
L'élément 12 a pour indice 0
L'élément -3 a pour indice 1
L'élément 1 a pour indice 2
L'élément 0 a pour indice 3
L'élément 17 a pour indice 4

Calculer le quotient et le reste d’une division euclidienne en même temps⚓︎

🐍 Script Python
q, r = divmod(47, 5) # au lieu de q = 47 // 5 et r = 47 % 5

print(q, r)
📋 Texte
9 2

Image de fond dans Tkinter⚓︎

🐍 Script Python
import tkinter as tk
from PIL import ImageTk, Image
import os

racine = tk.Tk()
racine.title("Titre")
racine.geometry("1200x800")

img = ImageTk.PhotoImage(Image.open("/home/asterix/Downloads/img1.jpg"))
panel = tk.Label(racine, image = img)
panel.pack(side='top', fill='both', expand='yes')

# button = tk.Button(panel, text='button widget')
# button.pack(side='top', pady=5)
# save the panel's image from 'garbage collection'

label = tk.Label(panel, text="J'adore Python !")
bouton = tk.Button(panel, text="Quitter", command=racine.quit)
# bouton["fg"] = "red"
# bouton["bg"] = "yellow"
# racine["bg"] = "orange"
label.pack()
bouton.pack()

panel.image = img

racine.mainloop()

print("C'est fini !")

Emoji dans Python⚓︎

🐍 Script Python
import emoji

pouce = emoji.emojize(":thumbs_up:")

print(pouce)
print(emoji.emojize("Python est :thumbs_up:"))
print("\U0001F600")
📋 Texte
👍
Python est 👍
😀

La liste des emojis disponibles via le module emoji de python : https://carpedm20.github.io/emoji/

Inputs multiples⚓︎

🐍 Script Python
a, b = input("Entrer deux nombres séparés par un espace : ").split()

print(f"{a = } et {b = }")
print(f"{a + b = }")

a = int(a)  # On convertit une chaîne de caractères en nombre entier
b = int(b)  # On convertit une chaîne de caractères en nombre entier

print(f"{a = } et {b = }")
print(f"{a + b = }")
📋 Texte
Entrer deux nombres séparés par un espace : 15 25
a = '15' et b = '25'
a + b = '1525'
a = 15 et b = 25
a + b = 40

Échanger le contenu de deux variables⚓︎

🐍 Script Python
a = 1000
b = 500
print(f'{a = } et {b = }')

a, b = b, a # On échange les valeurs en une seule fois
print(f'{a = } et {b = }')
📋 Texte
a = 1000 et b = 500
a = 500 et b = 1000

Compréhensions de listes⚓︎

🐍 Script Python
carres_impairs = [i**2 for i in range(11) if i % 2 == 1]
print(carres_impairs)
📋 Texte
[1, 9, 25, 49, 81]
🐍 Script Python
nombres = [1, 2, 3, 4, 5, 6, 7]
pairs = [x for x in nombres if x % 2 is 0]
impairs = [y for y in nombres if y not in pairs]

print(nombres)
print(pairs)
print(impairs)
📋 Texte
[1, 2, 3, 4, 5, 6, 7]
[2, 4, 6]
[1, 3, 5, 7]

Nombre variable de paramètres d’une fonction⚓︎

🐍 Script Python
def somme_de_n_nombres(*a):
    resultat = 0
    for i in a:
        resultat += i
    return resultat

res = somme_de_n_nombres(1, 2, 3, 4, 5, 6, 7, 8, 9)
print(res)
📋 Texte
45

Différentes façons d’entrer de passer des paramètres à une fonction⚓︎

🐍 Script Python
def ma_fonction(x, y, z):
    print(x, y, z)

un_tuple = (1, 0, 1)
une_liste = [1, 0, 1]
un_dict = {'x': 1, 'y': 0, 'z': 1}

ma_fonction(1, 0, 1)
ma_fonction(*un_tuple)
ma_fonction(*une_liste)
ma_fonction(**un_dict)
📋 Texte
1 0 1
1 0 1
1 0 1
1 0 1

Fonction retournant de multiples valeurs⚓︎

🐍 Script Python
# Définition de la fonction
def ma_fonction():
    return 1, 2, 3, 4

# Appel de la fonction : on affecte ce que celle-ci renvoie à quatre variables
a, b, c, d = ma_fonction()
print(a, b, c, d)
📋 Texte
1 2 3 4

Créer une chaîne de caractère à partir des éléments d’une liste⚓︎

🐍 Script Python
a = ["Bonjour", "à", "tous"]

print(" ".join(a))
📋 Texte
Bonjour à tous

Afficher une chaîne de caractères plusieurs fois⚓︎

🐍 Script Python
n = 3
a = "Bonjour"
b = "Bonjour "

print(a * n)
print(b * n)
📋 Texte
BonjourBonjourBonjour
Bonjour Bonjour Bonjour

Inverser une liste ou une chaîne de caractère⚓︎

🐍 Script Python
ma_chaine = 'Bonjour'[::-1]
print(ma_chaine)

ma_liste = [4, 7, 1]
autre_liste = ma_liste[::-1]
print(autre_liste)
📋 Texte
ruojnoB
[1, 7, 4]

Obtenir une seule liste à partir d’une liste de listes⚓︎

🐍 Script Python
ma_liste = [[1, 2, 3], [4, 5], [6], [7, 8], [9]]

# Première méthode
liste_applatie = []
for sous_liste in ma_liste:
    for element in sous_liste:
        liste_applatie.append(element)

# Deuxième méthode
liste_applatie2 = [element for sous_liste in ma_liste for element in sous_liste]

print(liste_applatie)
print(liste_applatie2)
📋 Texte
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Inverser les clés et les valeurs d’un dictionnaire⚓︎

🐍 Script Python
personnel = {'Physicienne': 'Lucille', 'Développeuse': 'Jeanne'}

personnel = {i: j for j, i in personnel.items()}

print(personnel)
📋 Texte
{'Lucille': 'Physicienne', 'Jeanne': 'Développeuse'}

Afficher votre version de Python⚓︎

🐍 Script Python
import sys

print(sys.version_info)
# ou bien
print(sys.version)
📋 Texte
sys.version_info(major=3, minor=9, micro=7, releaselevel='final', serial=0)
3.9.7 (default, Oct 13 2021, 06:44:56)
[Clang 12.0.0 (clang-1200.0.32.29)]

Séparer des variables avec un symbole particulier lors de l’affichage⚓︎

🐍 Script Python
identifiant = "yves.farge"
domaine = "csilyon.fr"

print(identifiant, domaine, sep = "@")
📋 Texte
yves.farge@csilyon.fr

Mettre en majuscule la première lettre de chaque mot⚓︎

🐍 Script Python
phrase = 'ceci est un bel article'
nouvelle_phrase = phrase.title()

print(phrase)
print(nouvelle_phrase)
📋 Texte
ceci est un bel article
Ceci Est Un Bel Article

For... Else⚓︎

Python est le seul langage de programmation à avoir une paire for / else.

🐍 Script Python
def contient_des_nombres_pairs(L):
    for elt in L:
        if elt % 2 == 0:
            print("La liste contient un nombre pair.")
            break
    else:
        print("La liste ne contient pas de nombre pair.")

contient_des_nombres_pairs([11, 4, 17])
contient_des_nombres_pairs([11, 3, 17])
📋 Texte
La liste contient un nombre pair.
La liste ne contient pas de nombre pair.

Fusionner deux dictionnaires⚓︎

🐍 Script Python
x = {'a': 1, 'b': 2}
y = {'b': 3, 'c': 4}

z = {**x, **y}

print(f"{z = }")
📋 Texte
z = {'a': 1, 'b': 3, 'c': 4}

Python et le format JSON⚓︎

JSON (JavaScript Objet Notation) est un langage léger d’échange de données textuelles (via un réseau, par exemple). Pour les ordinateurs, ce format se génère et s’analyse facilement. Pour les humains, il est pratique à écrire et à lire grâce à une syntaxe simple et à une structure en arborescence. JSON permet de représenter des données structurées (comme XML par exemple).

Exemple de données au format JSON⚓︎

🐍 Script Python
{
    "firstName": "Jane",
    "lastName": "Doe",
    "hobbies": ["running", "sky diving", "singing"],
    "age": 35,
    "children": [
        {
            "firstName": "Alice",
            "age": 6
        },
        {
            "firstName": "Bob",
            "age": 8
        }
    ]
}

Importer un fichier JSON en Python avec json.load()⚓︎

Sot le fichier file.json suivant :

📋 Texte
{
  "Name": "Jennifer Smith",
  "Contact Number": 7867567898,
  "Email": "jen123@gmail.com",
  "Hobbies": ["Reading", "Sketching", "Horse Riding"]
}

Les données JSON sont formatées sous la forme d’un dictionnaire en Python :

🐍 Script Python
import json

with open("file.json", "r") as fichier:
    objet_json = json.load(fichier)

print(type(objet_json))
print(objet_json)
📋 Texte
<class 'dict'>
{'Name': 'Jennifer Smith', 'Contact Number': 7867567898, 'Email': 'jen123@gmail.com', 'Hobbies': ['Reading', 'Sketching', 'Horse Riding']}

Enregistrer les donnés d’un dictionnaire Python sous forme d’un fichier JSON avec json.dump()⚓︎

🐍 Script Python
import json

dico = {"a": "01", "b": "11"}

with open('donnees.json', 'w') as fichier:
    json.dump(dico, fichier)

Le contenu du fichier donnees.json est le suivant :

📋 Texte
{"a": "01", "b": "11"}

Définir une fonction avec le mot clé lambda⚓︎

🐍 Script Python
somme = lambda x, y: x + y

print(somme(3, 7))
📋 Texte
10
🐍 Script Python
(lambda x, y: x + y)(3, 7)
📋 Texte
10

Un langage proche du pseudocode⚓︎

🐍 Script Python
ma_liste = [True, True, False]

print(any(ma_liste))
print(all(ma_liste))

if any(ma_liste):
    print("Au moins un des éléments est vrai")
if all(ma_liste):
    print("Tous les éléments sont vrais")
if any(ma_liste) and not all(ma_liste):
    print("Il y a au moins un élément vrai et un élément faux")
📋 Texte
True
False
Au moins un des éléments est vrai
Il y a au moins un élément vrai et un élément faux

Aficher la liste des méthodes liées à un objet⚓︎

🐍 Script Python
print(dir(str))
📋 Texte
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

Écrire et lire des grands nombres⚓︎

🐍 Script Python
a = 1000000000
b = 1_000_000_000
c = (a == b)

print(f"{a = }, {b = }, {c = }")
print(f"{a = :_}, {b = :_}, {c = }")
print(f"{a = :,} ; {b = :,};  {c = }")

d = str(f"{a:,}").replace(',', ' ')
print(f"{d = }")
📋 Texte
a = 1000000000, b = 1000000000, c = True
a = 1_000_000_000, b = 1_000_000_000, c = True
a = 1,000,000,000 ; b = 1,000,000,000;  c = True
d = '1 000 000 000'