Présentation de Python

  • Langage de programmation simple, puissant et populaire
  • Utilisé dans de nombreux domaines : web, science des données, robotique (comme le Raspberry Pi!)
  • Syntaxe claire et facile à lire

Prérequis

Pour ce cours, nous supposons que vous avez:

  • Un système Linux (Ubuntu , Debian ou Raspberry Pi OS 64-bit)
  • Python3 déjà installé (vérifiez avec python3 --version)
  • Un éditeur de texte comme vi

Installation

sudo apt update && sudo apt install python3

Premiers Pas avec Python

Lancer l’interpréteur Python

Ouvrez un terminal et tapez:

➜  ~ python --version
Python 3.10.4
➜  ~ 

il faut une version 3 minimum (car 2 n’est plus d’actualitée)

➜  ~ python
Python 3.10.4 (main, Jun 29 2022, 12:14:53) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Premières commandes

Essayez ces opérations simples:

>>> print("Bonjour le monde!")
>>> 2 + 3
>>> 10 / 2
>>> nom = "VotreNom"
>>> print("Je m'appelle", nom)
Python 3.11.2 (main, Apr 28 2025, 14:11:48) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> list("bonjour")
['b', 'o', 'n', 'j', 'o', 'u', 'r']
>>> 

Quitter l’interpréteur

>>> exit()

on appel la fonction exit pour en sortir

avec le clavier ctrl d (^d)

Écrire un Premier Script

Créer un fichier Python

Ouvrez votre éditeur de texte et créez un fichier bonjour.py:

#!/usr/bin/env python3
# Ceci est un commentaire

print("Bonjour les programmeurs en herbe!")
prenom = input("Comment t'appelles-tu? ")
print("Enchanté,", prenom, "!")

age = input("Quel âge as-tu? ")
print("Dans 10 ans, tu auras", int(age) + 10, "ans!")

Exécuter le script

Dans le terminal:

python3 bonjour.py   

ou, si bien paramétré

python bonjour.py

Ou rendez-le exécutable:

comme n’importe quel script.

chmod +x bonjour.py
./bonjour.py

Concepts de Base

Typage Faible vs Fort

  • Faiblement typé (weakly typed) :
    Le langage est permissif avec les conversions implicites entre types.
    Exemple : "3" + 4 pourrait donner "34" (JavaScript) ou 7 (selon le langage).
  • Fortement typé (strongly typed) :
    Le langage impose des règles strictes sur les types et refuse les opérations incohérentes.

Python est dynamiquement typé, mais relativement fort

  • ✔ Dynamique : Pas besoin de déclarer le type d’une variable (x = 10 suffit, pas besoin de int x = 10).
  • ✔ Fort : Python ne fait pas de conversions implicites dangereuses comme certains langages faiblement typés, comme javascript !
# ✅ Opérations autorisées (mais logiques)
print(3 + 5.0)   # → 8.0 (int + float → float)
print("abc" + "def")  # → "abcdef" (concaténation)

# ❌ Opérations interdites (Python lève une erreur)
print("10" + 5)   # → TypeError (pas de conversion auto de str en int)
print(10 + "5")   # → Même erreur

Variables et Types

# Chaînes de caractères (str)
nom = "Alice"
message = 'Bonjour'

# Nombres entiers (int)
age = 12

# Nombres à virgule (float)
taille = 1.65

# Booléens (bool)
est_eleve = True

Opérations de Base

# Mathématiques
5 + 3   # Addition
7 - 2   # Soustraction
6 * 4   # Multiplication
8 / 2   # Division
10 // 3 # Division entière
10 % 3  # Modulo (reste)

# Chaînes de caractères
prenom = "Jean"
nom = "Dupont"
nom_complet = prenom + " " + nom

3. Structures de Contrôle

Condition if:

age = int(input("Quel âge as-tu? "))

if age < 13:
    print("Tu es un enfant!")
elif age < 18:
    print("Tu es un adolescent!")
else:
    print("Tu es un adulte!")

Boucle for:

for i in range(5):  # 0 à 4
    print("Numéro", i)

for lettre in "Python":
    print(lettre)

Boucle while:

compteur = 0
while compteur < 5:
    print("Compteur:", compteur)
    compteur += 1

Projet Pratique: Devine le Nombre

Créez un fichier devine.py:

#!/usr/bin/env python3
import random

nombre_secret = random.randint(1, 100)
essais = 0
max_essais = 7

print("J'ai choisi un nombre entre 1 et 100. Devine lequel!")

while essais < max_essais:
    essais += 1
    essai = int(input("Essai {}: ".format(essais)))
    
    if essai < nombre_secret:
        print("Trop petit!")
    elif essai > nombre_secret:
        print("Trop grand!")
    else:
        print("Bravo! Tu as trouvé en", essais, "essais.")
        break

if essais >= max_essais:
    print("Désolé, le nombre était", nombre_secret)

Gestion des erreurs avec try/except en Python

Le bloc try/except est un mécanisme de gestion des erreurs qui permet d’attraper et traiter les exceptions pour éviter que le programme ne plante.

Structure de Base

try:
    # Code susceptible de provoquer une erreur
    resultat = 10 / 0  # Division par zéro → erreur
except:
    # Code exécuté si une erreur survient
    print("Une erreur est survenue !")

Introduction à pdb (debugger python)

pdb (Python Debugger) est un outil intégré à Python pour déboguer du code. Il permet :

  • D’exécuter le code ligne par ligne
  • D’inspecter les variables
  • De poser des points d’arrêt (breakpoints)
  • De corriger des bugs en temps réel

Démarrer pdb

Méthode 1 : Lancer un script en mode débogage

python3 -m pdb mon_script.py
  • Avantage : Débogue dès la première ligne.
  • Inconvénient : Nécessite de relancer le script après chaque modification.

 Commandes Essentielles

CommandeRaccourciDescription
helphAffiche l’aide générale
nextnExécute la ligne actuelle et passe à la suivante
stepsEntre dans une fonction (si appel)
continuecReprend l’exécution jusqu’au prochain breakpoint
quitqQuitte le débogueur brutalement
listlAffiche 10 lignes autour de la position actuelle
print(var)p varAffiche la valeur d’une variable
returnrContinue jusqu’à la fin de la fonction actuelle

 Gestion des Breakpoints

CommandeExempleDescription
break <ligne>b 10Pose un breakpoint à la ligne 10
break <fichier>:<ligne>b script.py:15Breakpoint dans un fichier spécifique
break <fonction>b ma_fonctionBreakpoint à l’entrée d’une fonction
clearcl 2Supprime le breakpoint n°2
disabledisable 1Désactive temporairement un breakpoint
enableenable 1Réactive un breakpoint

 Inspection des Variables

CommandeDescription
p <variable>Affiche la valeur (p x)
pp <variable>Pretty-print pour les structures complexes
whatis <variable>Affiche le type (whatis liste)
display <variable>Affiche la variable à chaque étape
undisplay <id>Désactive l’affichage automatique
CommandeDescription
where (w)Affiche la pile d’appels complète
up (u)Remonte d’un niveau dans la pile
down (d)Descend d’un niveau dans la pile

ipdb encore mieux en couleur

pip install ipdb

Faire comme avec pdb , mais avec ipdb .. et c’est en couleur

Pourquoi choisir ipdb ?

✅ Auto-complétion avec TAB
✅ Coloration syntaxique
✅ Historique des commandes
✅ Meilleure ergonomie que pdb

Conclusion

Python est un excellent langage pour débuter en programmation, surtout sur Linux et Raspberry Pi. Avec ces bases, vous pouvez déjà créer des petits programmes amusants!

N’hésitez pas à expérimenter, modifier les exemples et créer vos propres programmes. La pratique est la meilleure façon d’apprendre.

C’est en codant qu’on devient codeur !