Python
Référence Python avec syntaxe de base et bibliothèques courantes
Variables et Types
Assignation de variables
nom = 'Alice' age = 30 pi = 3.14 actif = True
Vérifier le type
type('hello') # <class 'str'>
type(42) # <class 'int'>
type(3.14) # <class 'float'>
type(True) # <class 'bool'>
type([1,2]) # <class 'list'>
type({'a':1}) # <class 'dict'>Conversion de types
int('42') # 42
str(42) # '42'
float('3.14') # 3.14
bool(0) # False
list('abc') # ['a', 'b', 'c']f-strings (formatage)
nom = 'Alice'
print(f'Bonjour {nom}, vous avez {age} ans')
print(f'{pi:.2f}') # '3.14'Listes
Créer une liste
fruits = ['pomme', 'banane', 'cerise'] nums = list(range(10)) # [0, 1, ..., 9]
Ajouter des éléments
fruits.append('mangue') # ajoute à la fin
fruits.insert(1, 'orange') # insère à l'index 1
fruits.extend(['kiwi', 'poire']) # ajoute plusieursSupprimer des éléments
fruits.remove('banane') # supprime par valeur
fruits.pop() # supprime le dernier
fruits.pop(0) # supprime à l'index 0
del fruits[1] # supprime à l'index 1
fruits.clear() # vide la listeSlicing
nums = [0, 1, 2, 3, 4, 5] nums[1:4] # [1, 2, 3] nums[:3] # [0, 1, 2] nums[3:] # [3, 4, 5] nums[-2:] # [4, 5] nums[::2] # [0, 2, 4] (pas de 2) nums[::-1] # [5, 4, 3, 2, 1, 0] (inversé)
Trier
nums.sort() # tri croissant en place nums.sort(reverse=True) # tri décroissant sorted(nums) # retourne une nouvelle liste triée sorted(users, key=lambda u: u['age'])
Méthodes utiles
len(fruits) # longueur
'pomme' in fruits # True si présent
fruits.index('pomme') # index de l'élément
fruits.count('pomme') # nombre d'occurrencesDictionnaires
Créer un dictionnaire
user = {'nom': 'Alice', 'age': 30}
user = dict(nom='Alice', age=30)Accès aux valeurs
user['nom'] # 'Alice' (KeyError si absent)
user.get('nom') # 'Alice' (None si absent)
user.get('role', 'user') # 'user' (valeur par défaut)Modifier et ajouter
user['email'] = 'a@b.com' # ajoute ou modifie
user.update({'age': 31, 'role': 'admin'})Supprimer
del user['age']
user.pop('age', None) # supprime, retourne None si absentParcourir un dictionnaire
user.keys() # dict_keys(['nom', 'age'])
user.values() # dict_values(['Alice', 30])
user.items() # dict_items([('nom', 'Alice'), ('age', 30)])
for key, value in user.items():
print(f'{key}: {value}')Dictionnaire en compréhension
carres = {x: x**2 for x in range(5)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}Fonctions
Définir une fonction
def saluer(nom):
return f'Bonjour {nom}'Paramètres par défaut
def creer(nom, role='user'):
return {'nom': nom, 'role': role}Args et kwargs
def func(*args, **kwargs):
print(args) # tuple des arguments positionnels
print(kwargs) # dict des arguments nommésLambda
double = lambda x: x * 2 sorted(users, key=lambda u: u['age'])
Retourner plusieurs valeurs
def divmod_custom(a, b):
return a // b, a % b
quotient, reste = divmod_custom(10, 3)Boucles et Itération
Boucle for avec range
for i in range(5): # 0, 1, 2, 3, 4
print(i)
for i in range(2, 10, 2): # 2, 4, 6, 8
print(i)Boucle for sur une liste
for fruit in fruits:
print(fruit)enumerate - index + valeur
for i, fruit in enumerate(fruits):
print(f'{i}: {fruit}')zip - parcourir en parallèle
noms = ['Alice', 'Bob']
ages = [30, 25]
for nom, age in zip(noms, ages):
print(f'{nom} a {age} ans')while
i = 0
while i < 5:
print(i)
i += 1break et continue
for n in range(10):
if n == 3: continue # saute 3
if n == 7: break # arrête à 7
print(n)Compréhensions
List comprehension
carres = [x**2 for x in range(10)]
Avec condition
pairs = [x for x in range(10) if x % 2 == 0]
Dict comprehension
mapping = {k: v for k, v in zip(cles, valeurs)}Set comprehension
uniques = {x % 3 for x in range(10)}Compréhension imbriquée
flat = [x for row in matrix for x in row]
Fichiers
Lire un fichier
with open('fichier.txt', 'r') as f:
contenu = f.read()Lire ligne par ligne
with open('fichier.txt', 'r') as f:
for ligne in f:
print(ligne.strip())Écrire dans un fichier
with open('fichier.txt', 'w') as f:
f.write('Bonjour\n')'w' écrase le fichier, 'a' ajoute à la fin
Lire/écrire du JSON
import json
with open('data.json', 'r') as f:
data = json.load(f)
with open('data.json', 'w') as f:
json.dump(data, f, indent=2)Gestion d'erreurs
try / except
try:
result = 10 / 0
except ZeroDivisionError:
print('Division par zéro !')Capturer l'exception
try:
data = json.loads(texte)
except json.JSONDecodeError as e:
print(f'Erreur: {e}')else et finally
try:
f = open('fichier.txt')
except FileNotFoundError:
print('Fichier introuvable')
else:
contenu = f.read() # exécuté si pas d'erreur
finally:
print('Terminé') # toujours exécutéLever une exception
raise ValueError('Valeur invalide')Modules utiles
os - système de fichiers
import os
os.listdir('.') # liste les fichiers
os.path.exists('fichier.txt') # vérifie l'existence
os.path.join('dossier', 'fichier.txt')
os.makedirs('a/b/c', exist_ok=True)
os.remove('fichier.txt')pathlib - chemins modernes
from pathlib import Path
p = Path('dossier') / 'fichier.txt'
p.exists()
p.read_text()
p.write_text('contenu')
list(Path('.').glob('*.py'))datetime
from datetime import datetime
now = datetime.now()
now.strftime('%Y-%m-%d %H:%M:%S')random
import random random.choice(['a', 'b', 'c']) random.randint(1, 10) random.shuffle(liste) random.sample(liste, 3)