Premiers pas python
Variables · Affichage · Demande
Affichage avec print()
print("Hello World!")
prenom = "Maya"
print("Bonjour", prenom)
Affiche un message dans le terminal. Plusieurs éléments peuvent être séparés par des virgules.
Demander à l'utilisateur
La fonction input() demande une saisie et retourne une chaîne (str). Stocker la réponse pour la réutiliser.
Conversion de types
Convertir une chaîne en entier ou flottant avec int() et float(); transformer vers chaîne avec str().
# Demande de l'âge à l'utilisateur
age = input("Quel est votre âge ? ")
# l'utilisateur remplit 19
print(age) # '19'
type(age) # str
# convertir en entier
age = int(age)
Exercice 1 — Mon premier message
Exercice 2 — Afficher mon prénom
prenom avec votre prénom, puis l'afficher avec print().Exercice 3 — Dire bonjour
input(), puis afficher "Bonjour" suivi de son prénom.Exercice 4 — Mon âge
Exercice 5 — Deux informations
Exercice 6 — Animal préféré
Listes · Tuples
Structures linéaires : listes (mutables) et tuples (immuables), parcours et opérations courantes, puis exercices sous forme de fonctions.
Créer et manipuler une liste
# Création
notes = [12, 15, 9, 18]
# Accès par indice
premiere = notes[0] # 12
derniere = notes[-1] # 18
# Longueur
taille = len(notes) # 4
# Parcours par valeur
for n in notes:
print(n)
# Parcours par indice
for i in range(len(notes)):
print(i, notes[i])
# Compréhension de liste
carres = [x*x for x in range(5)] # [0,1,4,9,16]
Méthodes utiles sur les listes
Méthodes courantes pour ajouter, retirer, trier, copier et interroger une liste.
liste = [3, 1, 4]
# Ajouter / étendre / insérer
liste.append(2) # [3, 1, 4, 2]
liste.extend([5, 6]) # [3, 1, 4, 2, 5, 6]
liste.insert(1, 99) # [3, 99, 1, 4, 2, 5, 6]
# Retirer / dépiler
liste.remove(99) # supprime la première occurrence de 99
x = liste.pop() # retire et retourne le dernier élément
y = liste.pop(2) # retire à l’indice 2
# Compter / trouver indice
c = liste.count(3) # nombre d’occurrences de 3
i = liste.index(4) # première position de 4
# Trier / inverser
liste.sort() # tri croissant
liste.sort(reverse=True) # tri décroissant
liste.reverse() # inversion
# Découpage (slicing)
milieu = liste[2:5]
inverse = liste[::-1]
# Copie (pour éviter les alias)
copie1 = liste[:] # copie par slicing
copie2 = liste.copy() # copie
Attention : les listes sont mutables; utiliser une copie pour conserver l’original si vous devez modifier sans impacter la variable source.
Tuples
Un tuple est une séquence immuable. On peut l'indexer et le parcourir comme une liste, mais on ne peut pas modifier ses éléments.
coord = (10, 20)
x = coord[0] # 10
y = coord[1] # 20
# coord[0] = 99 # Erreur : tuple immuable
Exercice 1 — Somme des éléments
somme_elements(liste) qui retourne la somme des éléments de liste.Exercice 2 — Compter les pairs
compter_pairs(liste) qui retourne le nombre d'éléments pairs dans liste.Exercice 3 — Longueurs des chaînes
longueur_chaines(liste) qui retourne une nouvelle liste contenant la longueur de chaque chaîne de liste.Exercice 4 — Produit des éléments
produit_elements(liste) qui retourne le produit des éléments; pour une liste vide, retourner 1.Exercice 5 — Occurrences
compter_occurrences(liste, valeur) qui retourne le nombre d'occurrences de valeur dans liste.Exercice 6 — Inverser une liste
inverser_liste(liste) qui retourne une nouvelle liste avec les éléments dans l'ordre inverse.Exercice 7 — Concaténation
concatener_listes(a, b) qui retourne une nouvelle liste contenant les éléments de a suivis de ceux de b.Exercice 8 — Premiers éléments
premiers_elements(liste, n) qui retourne les n premiers éléments de liste (ou toute la liste si n est plus grand).Conditions
La structure if
age = 18
if age >= 18:
print("Vous êtes majeur")
Après if, écrire la condition, terminer par : et indenter le bloc exécuté si la condition est vraie.
if–else
age = 15
if age >= 18:
print("Vous êtes majeur")
else:
print("Vous êtes mineur")
if–elif–else
Pour tester plusieurs conditions successives, utiliser elif.
note = 14
if note >= 16:
print("Très bien")
elif note >= 14:
print("Bien")
elif note >= 12:
print("Assez bien")
elif note >= 10:
print("Passable")
else:
print("Insuffisant")
Opérateurs de comparaison
Pour créer des conditions, utiliser les opérateurs suivants :
| opérateur | signification | exemple |
|---|---|---|
| > | supérieur | 3 > 1 |
| < | inférieur | 3 < 1 |
| >= | supérieur ou égal | 3 >= 1 |
| <= | inférieur ou égal | 3 <= 1 |
| == | égal à | 3 == 1 |
| != | différent de | 3 != 1 |
Attention à ne pas confondre l'affectation = avec la comparaison ==.
Opérateurs logiques
and (et)
Les deux conditions doivent être vraies.
age = 20
permis = True
if age >= 18 and permis == True:
print("Vous pouvez conduire")
or (ou)
Au moins une des conditions doit être vraie.
jour = "samedi"
if jour == "samedi" or jour == "dimanche":
print("C'est le week-end !")
not (non)
Inverse la condition.
pluie = False
if not pluie:
print("On peut sortir sans parapluie")
Exercice 1 — Comparaison de deux nombres
Exercice 2 — Vérification de longueur
Indice :
len(s) renvoie la longueur de la chaîne s.Exercice 3 — Catégorie d'âge
Exercice 4 — Calculatrice de moyenne
Exercice 5 — Prix du billet de train
Fonctions
Qu'est-ce qu'une fonction ?
Une fonction est un bloc de code réutilisable qui effectue une tâche spécifique. Elle organise le code et évite les répétitions.
Définir et appeler une fonction
def dire_bonjour():
print("Bonjour !")
print("Comment allez-vous ?")
dire_bonjour()
Paramètres
def dire_bonjour(prenom):
print("Bonjour", prenom)
dire_bonjour("Alice")
dire_bonjour("Bob")
Plusieurs paramètres sont possibles, séparés par des virgules :
def additionner(a, b):
resultat = a + b
print("La somme est :", resultat)
additionner(5, 3)
Retour de valeur avec return
def additionner(a, b):
resultat = a + b
return resultat
somme = additionner(10, 20)
print(somme) # 30
print affiche une valeur, return renvoie une valeur pour réutilisation.
def calculer_double(nombre):
return nombre * 2
resultat = calculer_double(5)
print("Le double est :", resultat)
Exercice 1 — Ma première fonction
afficher_message() qui affiche "Bienvenue dans mon programme !". Appeler cette fonction 3 fois.Exercice 2 — Fonction avec paramètre
saluer(nom) qui prend un nom et affiche "Bonjour" suivi du nom. Appeler avec différents noms.Exercice 3 — Calcul du carré
calculer_carre(nombre) qui retourne le carré. Demander un nombre, utiliser la fonction et afficher le résultat.Exercice 4 — Vérification de parité
est_pair(nombre) qui retourne True si le nombre est pair et False sinon. Demander un nombre et afficher s'il est pair ou impair. Rappel : pair si nombre % 2 == 0.Exercice 5 — Calcul de prix TTC
calculer_ttc(prix_ht, taux_tva) qui retourne le prix TTC (HT × (1 + taux/100)). Demander les valeurs et afficher le prix TTC.Exercice 6 — Calculatrice complète
addition, soustraction, multiplication, division puis une fonction calculatrice() qui demande deux nombres et une opération, appelle la fonction appropriée et affiche le résultat.
Boucles
Rappels sur for, while, range(), break/continue, puis exercices sous forme de fonctions.
Boucle for et range()
# Parcourir une séquence de nombres de 1 à 5
for i in range(1, 6):
print(i)
# Parcourir une liste
animaux = ["renard", "lapin", "hibou"]
for a in animaux:
print(a)
range(debut, fin, pas) génère une séquence. Parcourir des listes directement est fréquent.
Boucle while
# Répéter tant qu'une condition est vraie
compteur = 0
while compteur < 3:
print("tour", compteur)
compteur += 1
Attention aux conditions et aux mises à jour des variables pour éviter les boucles infinies.
break et continue
for i in range(1, 10):
if i == 5:
break # Arrête la boucle
if i % 2 == 0:
continue # Passe à l'itération suivante
print(i)
Utiliser break pour arrêter la boucle, continue pour sauter à l'itération suivante.
Exercice 1 — 1 à 100
liste_de_1_a_100() qui retourne la liste des nombres de 1 à 100.Exercice 2 — Table de multiplication
table_multiplication(n) qui retourne une liste de 10 chaînes sous la forme "i x n = produit" pour i allant de 1 à 10.Exercice 3 — Somme de 1 à 100
somme_1_a_100() qui retourne la somme des entiers de 1 à 100.Exercice 4 — Pairs 1..100
pairs_1_a_100() qui retourne la liste des nombres pairs entre 1 et 100.Exercice 5 — Compter les voyelles
compter_voyelles(chaine) qui retourne le nombre de voyelles dans chaine. Indice : utiliser un ensemble comme set("aeiouyAEIOUY").Exercice 6 — Inverser une chaîne
inverser_chaine(chaine) qui retourne chaine inversée.Exercice 7 — Somme des chiffres
somme_chiffres(n) qui retourne la somme des chiffres de l'entier n.Exercice 8 — Jusqu'au premier négatif
compter_positifs_avant_negatif(entiers) qui parcourt la liste entiers et retourne le nombre de valeurs lues avant de rencontrer le premier négatif (ou la longueur si aucun négatif).Exercice 9 — Multiples de 3
multiples_de_trois(start, count) qui retourne la liste obtenue en partant de start et en le multipliant par 3, count fois de suite.Exercice 10 — Divisions par 2
nb_divisions_par_2(n) qui retourne le nombre de fois où n est divisible par 2 (division entière) jusqu'à devenir strictement inférieur à 2.Exercice 11 — Diviseurs et primalité
diviseurs_propres(n) qui retourne la liste des diviseurs de n (hors 1 et n). Puis écrire est_premier(n) qui retourne True si n est premier.Exercice 12 — Conjecture de Syracuse
sequence_syracuse(n) qui retourne la liste des termes de la suite de Syracuse en partant de n jusqu'à 1 (si pair: n // 2, sinon: 3*n + 1).Exercice 13 — Occurrences d’un caractère
compter_occurrences_caractere(chaine, c) qui retourne le nombre d’occurrences de c dans chaine en parcourant la chaîne caractère par caractère.Exercice 14 — Supprimer un caractère
supprimer_caractere(chaine, c) qui retourne une nouvelle chaîne sans aucune occurrence de c.Exercice 15 — Doubler chaque caractère
doubler_caracteres(chaine) qui retourne une chaîne où chaque caractère de chaine est répété deux fois (ex: "abc" → "aabbcc").Exercice 16 — Alterner majuscules/minuscules
alterner_casse(chaine) qui retourne une chaîne où les caractères d’indice pair sont en majuscule et ceux d’indice impair en minuscule. Utiliser une boucle sur les indices.Exercice 17 — Miroir des mots
miroir_mots(phrase) qui retourne une nouvelle phrase où chaque mot est inversé caractère par caractère, en conservant les espaces (ex: "bonjour monde" → "ruojnob ednom").Exercice 18 — Compter lettres et chiffres
compter_lettres_chiffres(chaine) qui retourne un tuple (nb_lettres, nb_chiffres) en parcourant la chaîne et en classant chaque caractère.Exercice 19 — Palindrome (sans slicing)
est_palindrome(chaine) qui retourne True si chaine est un palindrome en utilisant une boucle (sans [::-1] ni reversed()).