valeur = 2
if valeur == 1:
print("un")
elif valeur == 2:
print("deux")
else:
print("autre")
2. Boucle for
Une séquence (séquence) est un type de conteneur ordonné et itérable, accessible par indice. Les séquences natives incluent : str, list, tuple, range.
for element in range(10):
print(element)
3. Boucle while
message = "bonjour python"
i = 0
while i < len(message):
print(message[i])
i += 1
else:
print("fin")
4. continue, break et pass
continue: saute l'itération en coursbreak: sort de la bouclepass: instruction vide, sert de placeholder
5. Type numérique
a = 1
b = 2
print(max(a, b))
c = 0.1
print(int(c))
6. Chaînes de caractères
6.1 Opérations de base
texte = "bonjour python"
print(texte[0]) # 'b'
print(texte[1:3]) # 'on' (indices 1 et 2)
bloc = """
Salut
tout le monde
"""
print(bloc)
print(r"saut de ligne\n") # raw string
for i in range(5):
print(f"itération {i}")
6.2 Méthodes intégrées
print("abc".upper()) # ABC
print("ABC".lower()) # abc
print("hello world".title()) # Hello World
print("hello".find('l')) # 2
print("salut".replace("ut", "utation")) # salutation
print(" espaces ".strip()) # "espaces"
print("1,2,3".split(',')) # ['1','2','3']
print(','.join(["a","b","c"])) # "a,b,c"
print("hello".startswith("he")) # True
print(len("hello")) # 5
7. Listes
7.1 Création
liste_vide = []
nombres = [1, 2, 3]
mixte = [1, "hello", True]
imbriquee = [[1, 2], [3, 4]]
7.2 Accès
fruits = ["pomme", "banane", "cerise"]
print(fruits[0]) # pomme
print(fruits[-1]) # cerise
7.3 Ajout
fruits.append("orange")
fruits.insert(1, "mangue")
7.4 Suppression
fruits.pop() # supprime et retourne le dernier
fruits.pop(1) # supprime l'élément à l'indice 1
fruits.remove("pomme")# supprime la première occurrence
del fruits[0]
7.5 Tranches (slicing)
nums = [0, 1, 2, 3, 4, 5]
print(nums[1:4]) # [1,2,3]
print(nums[:3]) # [0,1,2]
print(nums[3:]) # [3,4,5]
print(nums[::2]) # [0,2,4]
print(nums[::-1]) # [5,4,3,2,1,0]
7.6 Concaténation
liste1 = [1, 2]
liste2 = [3, 4]
combinee = liste1 + liste2 # [1,2,3,4]
liste1.extend(liste2) # [1,2,3,4]
7.7 Méthodes courantes
nums = [1, 2, 3, 2]
print(len(nums)) # 4
print(nums.index(2)) # 1
print(nums.count(2)) # 2
nums.reverse()
nums.sort()
7.8 Compréhensions de listes
carres = [x**2 for x in range(5)] # [0,1,4,9,16]
carres_pairs = [x**2 for x in range(10) if x % 2 == 0]
8. Tuples
8.1 Caractéristiques
Un tuple est immuable, plus sûr et peut être utilisé comme clé de dictionnaire.
8.2 Création
tuple_vide = ()
element_unique = (42,) # virgule obligatoire
couleurs = ("rouge", "vert", "bleu")
coordonnees = 10, 20, 30 # sans parenthèses
8.3 Accès
print(couleurs[0]) # rouge
print(coordonnees[1:3]) # (20,30)
8.4 Déballage (unpacking)
point = (3, 5)
x, y = point
premier, *milieu, dernier = (1, 2, 3, 4, 5)
print(premier) # 1
print(milieu) # [2,3,4]
print(dernier) # 5
8.5 Concaténation et répétition
t1 = (1, 2)
t2 = (3, 4)
print(t1 + t2) # (1,2,3,4)
print(("salut",) * 3) # ('salut','salut','salut')
8.6 Méthodes
t = (1, 2, 3, 2, 4, 2)
print(t.count(2)) # 3
print(t.index(3)) # 2
9. Dictionnaires
9.1 Caractéristiques
- Structure clé-valeur
- Recherche rapide O(1)
- Clés immuables et uniques
- Valeurs de tout type
9.2 Création
vide = {}
personne = {
"nom": "Alice",
"age": 30,
"etudiant": False,
"cours": ["Maths", "Physique"]
}
coords = dict(x=10, y=20)
paires = [("nom", "Bob"), ("age", 25)]
personne2 = dict(paires)
9.3 Accès
print(personne["nom"])
print(personne.get("age"))
print(personne.get("pays", "France"))
if "email" not in personne:
personne["email"] = "alice@example.com"
9.4 Modification
personne["age"] = 31
personne.update({"age": 32, "ville": "Paris"})
combinee = personne | personne2 # Python 3.9+
9.5 Suppression
del personne["etudiant"]
email = personne.pop("email")
dernier = personne.popitem()
personne.clear()
9.6 Parcours
for cle in personne.keys():
print(cle)
for valeur in personne.values():
print(valeur)
for cle, valeur in personne.items():
print(f"{cle}: {valeur}")
carre = {x: x**2 for x in range(5)}
9.7 Dictionnaires imbriqués
utilisateurs = {
"alice": {"age": 30, "email": "alice@ex.com"},
"bob": {"age": 25, "email": "bob@ex.com"}
}
print(utilisateurs["alice"]["email"])
10. Gestion des exceptions
10.1 Bloc try/except
try:
resultat = 10 / 0
except ZeroDivisionError:
print("Division par zéro !")
except (TypeError, ValueError) as e:
print(f"Erreur de type ou valeur : {e}")
except Exception as e:
print(f"Erreur inconnue : {e}")
else:
print("Succès")
finally:
print("Nettoyage...")
10.2 Exception personnalisée
class ErreurApplicative(Exception):
def __init__(self, message, code):
super().__init__(message)
self.code = code
try:
raise ErreurApplicative("Erreur métier", 1001)
except ErreurApplicative as e:
print(f"Code {e.code}: {e}")
11. Fichiers et entrées/sorties
11.1 Ouverture
fichier = open('fichier.txt', 'r', encoding='utf-8')
# modes : 'r' (lecture), 'w' (écriture), 'a' (ajout), '+' (lecture+écriture)
11.2 Lecture
with open('exemple.txt', 'r') as f:
contenu = f.read()
with open('exemple.txt', 'r') as f:
for ligne in f:
print(ligne.strip())
with open('grosfichier.bin', 'rb') as f:
morceau = f.read(1024)
11.3 Écriture
with open('sortie.txt', 'w') as f:
f.write("Bonjour le monde!\n")
f.write("Deuxième ligne")
lignes = ["Première", "Deuxième", "Troisième"]
with open('sortie.txt', 'w') as f:
f.writelines(l + '\n' for l in lignes)
11.4 Pointeur de fichier
with open('data.txt', 'r+') as f:
pos = f.tell()
donnees = f.read(10)
f.seek(0)
f.write("Texte inséré")
f.seek(0, 2)
f.write("\nAjout en fin")
11.5 Contexte with
try:
with open('fichier.txt', 'r') as f:
donnees = f.read()
except FileNotFoundError:
print("Fichier introuvable")
12. Opérations sur les répertoires
import os
import shutil
os.mkdir('nouveau_dossier')
os.makedirs('chemin/vers/sous/repertoire', exist_ok=True)
os.rmdir('dossier_vide')
shutil.rmtree('dossier_avec_contenu')
for racine, dossiers, fichiers in os.walk('.'):
print(f"Racine : {racine}")
print(f"Sous-dossiers : {dossiers}")
print(f"Fichiers : {fichiers}")
infos = os.stat('fichier.txt')
print(f"Taille : {infos.st_size} octets")
print(f"Modifié : {infos.st_mtime}")
13. Sérialisation JSON
import json
donnees = {"nom": "Alice", "age": 30, "notes": [90, 85, 95]}
with open('donnees.json', 'w') as f:
json.dump(donnees, f, indent=2)
with open('donnees.json', 'r') as f:
charge = json.load(f)
print(charge['nom']) # Alice