Intro Python Groupe A
Thème du site
Thème du code
Avancement

Chapitre 1 - Les bases, les conditions et les boucles

🎯 Objectifs du Chapitre

  • Découvrir Python, comprendre ses possibles cas d'utilisation.
  • Prendre en main l’environnement de développement VSCode.
  • Savoir écrire et exécuter des programmes simples en Python.
  • Savoir utiliser les opérateurs arithmétiques simples.
  • Écrire des programmes dynamiques en utilisant des conditions (if, else) et des boucles (for, while).
  • Comprendre l'importance des structures de contrôle pour gérer le flux d'exécution d'un programme.

📖 1. Environnement de développement

Pour coder en Python, il est nécessaire d'avoir un environnement de développement. Il existe plusieurs IDE (Integrated Development Environment) pour développer en Python. Parmi les plus connus, on peut citer :

  • Visual Studio Code : IDE multi-langage open-source développé par Microsoft
  • Edupython : IDE Python développé par l'Académie d'Amiens pour l'enseignement du Python en collège/lycée
  • PyCharm : IDE Python développé par JetBrains (Solution payante)
  • Spyder : IDE Python développé pour les scientifiques
  • Jupyter : Application web permettant de créer et partager des documents contenant du code, des équations, des visualisations et du texte

Lors de ce cours, nous utiliserons Visual Studio Code du fait de sa simplicité d'utilisation et de sa compatibilité avec de nombreux langages de programmation.

1.1 Interface de Visual Studio Code

Interface de Visual Studio Code

📖 2. Qu'est ce que Python ?

Python est un langage de programmation :

  • Interprété : Le code est exécuté directement par un programme appelé interpréteur, sans passer par une compilation complète. Cela permet de voir les résultats rapidement, mais peut être un peu plus lent qu’un langage compilé.
  • Haut niveau : Le langage est conçu pour être facile à comprendre et à écrire pour les humains. Il se rapproche du langage naturel et cache les détails techniques de la machine (comme la gestion de la mémoire).
  • Multi-paradigme : Le langage permet d'utiliser plusieurs styles de programmation (ou paradigmes), comme la programmation orientée objet (avec des objets munis d'attributs), la programmation fonctionnelle (avec des fonctions) ou la programmation impérative (instruction par instruction). Cela rend le langage plus flexible et adaptable à différents types de projets.

Il est populaire pour sa simplicité et sa lisibilité et il est majoritairement utilisé pour les applications suivantes :

  • Développement web (Django, Flask).
  • Analyse de données (Pandas, NumPy).
  • Intelligence artificielle et machine learning (TensorFlow, PyTorch).
  • Scripts d’automatisation.

📖 3. Premiers pas avec Python

3.1 Les commentaires

Un commentaire est une ligne de texte qui n’est pas exécutée par l’interpréteur. Il sert à documenter le code.

Un commentaire s’écrit avec # au début de la ligne.

Exemple :

# Ceci est un commentaire
print("Hello World") # Ceci est un autre commentaire

Un commentaire multi-lignes s'écrit avec des triples guillemets """.

Exemple :

"""
Ceci est un commentaire
sur plusieurs lignes
"""
print("Hello World")

Le raccourci clavier pour commenter/décommenter une ligne de code est Ctrl + / sur Linux et Ctrl + : sur Windows.
Le raccourci clavier universel pour commenter une ligne de code est Ctrl + K + C et Ctrl + K + U pour décommenter.

3.2 Les variables

Une variable est un espace de stockage qui permet de conserver dans le temps les données d'un programme (texte, nombre, liste, etc.) en la stockant dans la mémoire de l'ordinateur.

La variable possède un nom, un type et une valeur. (Nous verrons les types dans la suite du chapitre).

Le nom de la variable doit être explicite et permettre de comprendre le rôle qu'elle joue dans le programme.

Un nom de variable doit commencer par une lettre ou un underscore (_) et ne doit pas contenir d'espace.

Exemple :

# Déclaration d'une variable
longueur = 25 # longueur est le nom de la variable, 25 est la valeur

On dit que l'on déclare la variable longueur et qu'on lui affecte la valeur 25.

3.3 Affichage des données

Pour afficher des données à l'écran, on utilise la fonction print().

Exemple :

# Affichage d'une chaîne de caractères
print("Hello World")
>> Hello World

# Affichage d'une variable
longueur = 25
print(longueur)
>> 25

On peut aussi afficher plusieurs éléments en les séparant par des virgules.

Exemple :

# Affichage de plusieurs éléments
longueur = 25
largeur = 10
print("La longueur est de", longueur, "mètres et la largeur est de", largeur, "mètres.")
>> La longueur est de 25 mètres et la largeur est de 10 mètres.

3.4 Les types de données de base

Python possède plusieurs types de données courants :

Nombres entiers (int) :

a = 5
print(type(a))
>> <class 'int'>

Nombres décimaux (float) : En informatique, les nombres décimaux sont souvent représentés en nombre à virgule flottante, encore appelés nombres flottants.

b = 3.14
print(type(b))
>> <class 'float'>

Compte tenu de la manière dont les nombres à virgule flottante sont stockés en mémoire, les nombres flottants sont souvent approximés, ce qui peut entraîner des erreurs de calcul. Il faut donc éviter de tester l'égalité de deux nombres flottants.

Chaînes de caractères (str) :

c = "Salut"
print(type(c))
>> <class 'str'>

Booléens (bool) :

d = True
print(type(d))
>> <class 'bool'>

En Python, il n'est pas nécessaire de déclarer le type d'une variable, le langage se charge de le déterminer automatiquement.

3.5 Les opérateurs arithmétiques

Python permet de faire des opérations mathématiques de base :

  • Addition : +
  • Soustraction : -
  • Multiplication : *
  • Division : /
  • Puissance : **
  • Modulo : % (reste de la division euclidienne)
  • Division entière : // (quotient entier de la division euclidienne)

Exemple :

a = 5
b = 3
print(a + b)
>> 8

print(a - b)
>> 2

print(a * b)
>> 15

print(a / b)
>> 1.6666666666666667

print(a ** b)
>> 125

print(a % b)
>> 2

print(a // b)
>> 1

3.6 Les opérateurs d'affectation

Vous connaissez déjà l'opérateur d'affectation = qui permet d'assigner une valeur à une variable.

Il existe d'autres opérateurs d'affectation qui permettent de simplifier l'écriture de certaines opérations.

  • += : Ajoute une valeur à la variable.
  • -= : Soustrait une valeur à la variable.
  • *= : Multiplie la variable par une valeur.
  • /= : Divise la variable par une valeur.
  • %= : Modifie la variable pour qu'elle contienne le reste de la division euclidienne.
  • //= : Modifie la variable pour qu'elle contienne le quotient entier de la division euclidienne.

Exemple :

a = 5
a += 3 #equivalent à a = a + 3
print(a)
>> 8

a -= 3 #equivalent à a = a - 3
print(a)
>> 5

a *= 3 #equivalent à a = a * 3
print(a)
>> 15

a /= 3 #equivalent à a = a / 3
print(a)
>> 5.0

a %= 3 #equivalent à a = a % 3
print(a)
>> 2.0

a //= 3 #equivalent à a = a // 3
print(a)
>> 0.0

✏️ Exercice 1 : Créer et lancer un programme Python simple

Visual Studio Code a un fonctionnement qui est basé sur de la gestion de projets par dossier.
Il faut donc toujours ouvrir un dossier pour pouvoir travailler sur un projet.
Il faut oublier l'idée d'ouvrir les fichiers un par un, comme on le ferait avec un éditeur de texte classique.

Créez l'arborescence Documents/Intro_Python/Comprendre_les_bases/, ouvrez le dossier Comprendre_les_bases dans Visual Studio Code (Fichier -> Ouvrir un dossier), puis créez-y un fichier nommé exercice1.py.

Les noms de fichiers et dossiers ne doivent jamais contenir d'espaces ou de caractères spéciaux : on se limite aux lettres de l'alphabet, aux chiffres, au tiret (-) et à l'underscore (_). C'est l'extension .py qui indique que le fichier est un fichier Python.

Dans la partie éditeur de Visual Studio Code, écrivez un programme qui déclare les variables suivantes :

  • nom : contenant votre nom.
  • age : contenant votre âge.
  • taille : contenant votre taille en mètres.

Puis, en utilisant une seule fois la fonction print() afficher un message de présentation utilisant ces variables, suivi du type de chacune d'elles.

Pour lancer votre programme, appuyez sur le bouton d'exécution du code tel que présenté ici. Ou alors, vous pouvez utiliser le terminal intégré de Visual Studio Code en tapant python exercice1.py. (N'oubliez pas de sauvegarder votre fichier avant de lancer le programme).

Pour sauvegarder un fichier, vous pouvez utiliser le raccourci clavier Ctrl + S.

Avec l'usage d'une seule itération de la fonction print(), le message est plutôt très long et s'affiche sur une seule ligne.

Cherchez sur internet le caractère spécial qui permet de faire un retour à la ligne dans un même print et utilisez le pour améliorer la lisibilité de votre message. (Attention, il doit être dans une chaîne de caractères pour fonctionner).

Vous savez maintenant comment créer, écrire et exécuter un programme Python. Vous avez également appris à faire un retour à la ligne dans un message affiché par la fonction print().

✏️ Exercice 2 : Opérations simples

Créez un nouveau fichier Python nommé exercice2.py dans le dossier Comprendre_les_bases.

Écrire un programme qui demande à l'utilisateur deux nombres entiers, puis affiche la somme, la différence, le produit et le quotient de ces deux nombres. (Aidez-vous d'internet pour savoir comment demander des valeurs à l'utilisateur en Python, ou encore pour vous rappeler de ce qu'est un quotient 🙂).

Lorsque vous exécutez votre code, vous voyez les sorties/affichages de celui-ci dans le terminal de Visual Studio Code. Les erreurs éventuelles sont aussi affichées dans ce terminal. Lors des différents exercices de ce cours vous allez devoir apprendre à lire ces messages d'erreurs pour comprendre et corriger les erreurs que vous avez commises.
N'ayez pas peur des erreurs, elles font partie du processus d'apprentissage, et vous permettent de progresser.

  • En premier lieu, essayez de comprendre l'erreur par vous-même
  • Dans un second temps, vous pouvez vous aider d'internet avec des sites de questions/réponses comme StackOverflow, ou encore des sites de documentation comme W3Schools.
  • En dernier recours, si vous êtes vraiment bloqués, n'hésitez pas à demander de l'aide à votre enseignant.

Vous savez maintenant comment utiliser des opérateurs arithmétiques simples et comment demander des informations à l'utilisateur de votre programme.

📖 4. Les conditions (Structures de décision)

4.1 Principe des conditions

Les structures conditionnelles permettent de prendre des décisions dans un programme. En fonction de certaines conditions, différentes parties du code peuvent être exécutées.

  • if : vérifie une condition et exécute le bloc de code associé si elle est vraie.
  • elif : vérifie une autre condition lorsque la première est fausse et exécute le bloc de code associé si cette nouvelle condition est vraie.
  • else : exécute un bloc de code si toutes les conditions précédentes sont fausses

Exemple :

if condition:
    # Bloc de code exécuté si la condition est vraie
elif autre_condition:
    # Bloc exécuté si la première condition est fausse et l’autre condition est vraie
else:
    # Bloc exécuté si toutes les conditions précédentes sont fausses

Contrairement à d'autres langages tels que C/C++ ou même Java, Python utilise l’indentation (l'espace en début de ligne) pour délimiter les blocs de code. Cette indentation est réalisée avec la touche Tab du clavier. Le raccourci Shift + Tab permet de retirer une indentation.

4.2 Opérateurs de comparaison

Les opérateurs de comparaison permettent de comparer deux valeurs. Ils sont utilisés dans les conditions pour vérifier si une condition est vraie ou fausse :

  • == : égal à
  • != : différent de
  • < : inférieur à
  • > : supérieur à
  • <= : inférieur ou égal à
  • >= : supérieur ou égal à

Exemple :

age = 18

if age >= 18:
    print("Vous êtes majeur.")
else:
    print("Vous êtes mineur.")
>> Vous êtes majeur.

4.3 Opérateurs logiques

On peut combiner plusieurs conditions grâce aux opérateurs logiques :

  • and : toutes les conditions doivent être vraies.
  • or : au moins une des conditions doit être vraie.
  • not : inverse la condition.

Exemple :

x = 12
y = 3

if x > 5 and y < 10:
    print("Les deux conditions sont vraies.")

>> Les deux conditions sont vraies.

✏️ Exercice 3 : Un dressing intelligent

Un exemple d'organisation de vos dossiers/fichiers vous a été donné plus haut dans ce chapitre, vous pouvez vous en inspirer pour continuer à travailler de manière organisée tout au long de ce cours.

Rappel : Toujours ouvrir un dossier à l'ouverture de VSCode pour travailler à l'intérieur de celui-ci.

Objectif : Écrire un programme qui aide l’utilisateur à choisir une tenue en fonction de la température qu'il donne.

Consigne : Le programme demande à l’utilisateur la température extérieure et affiche une tenue de votre choix adaptée à la température en fonction des 4 cas suivants :

  • Si la température est inférieure à 0°C
  • Si la température est entre 0°C et 10°C
  • Si la température est entre 10°C et 20°C
  • Si la température est supérieure à 20°C

Vous savez maintenant écrire des conditions simples.

✏️ Exercice 4 : Les tables de vérité

Voici un tableau représentant les résultats des opérations logiques and et or :

ABA and BA or B
FalseFalseFalseFalse
FalseTrue??
TrueTrue??
TrueFalse??

Ce tableau s'appelle une table de vérité. Elle permet de déterminer le résultat d'une opération logique en fonction des valeurs de vérité des variables A et B.

Écrire un programme qui demande à l'utilisateur les valeurs de vérité de A et B et affiche les résultats des opérations logiques and et or afin de compléter les tableaux ci-dessus.

La fonction bool() ne permet pas de convertir les chaînes de caractères "True" ou "False" en booléens. Pour cela, on utilise la fonction eval().

Quelle est la différence entre le fonctionnement de la fonction bool() et de la fonction eval() ?

Sans utiliser l'ordinateur, remplissez à la main la table de vérité de l'opération not A or not B suivante :

ABnot Anot Bnot A or not B
FalseFalse???
FalseTrue???
TrueTrue???
TrueFalse???

Vous savez maintenant manipuler les opérateurs logiques et avez découvert les tables de vérité.

✏️ Exercice 5 : Un dressing encore plus intelligent

Objectif : Améliorer le programme de l'exercice 3 en ajoutant à la température une condition sur le temps (pluie, soleil, nuageux).

Consigne : Reprenez le code de l'exercice 3 et ajoutez un choix de temps (pluie, soleil, nuageux) : la tenue affichée doit tenir compte de la température et du temps.

Exemple :

>> Quelle est la température extérieure (en °C) ? 
25
>> Quel temps fait-il ? (choisissez une réponse en tapant le numéro correspondant)
>> 1. Pluie
>> 2. Soleil
>> 3. Nuageux
2
>> Vous devriez porter un t-shirt et un short.

📖 5. Les boucles (Structures itératives)

5.1 La boucle for

La boucle for permet de répéter un bloc de code un nombre déterminé de fois. Elle est souvent utilisée pour parcourir des séquences (listes, chaînes de caractères, etc.)

Exemple :

for variable in séquence:
    # Bloc de code exécuté pour chaque élément de la séquence
for i in range(3):
    print(i)
>> 0
>> 1
>> 2

5.2 La boucle while

La boucle while exécute un bloc de code tant qu’une condition est vraie.

Exemple :

while condition:
    # Bloc de code exécuté tant que la condition est vraie
compteur = 0
while compteur < 4:
    print(compteur)
    compteur += 1
>> 0
>> 1
>> 2
>> 3

5.3 Boucle infinie et sortie de boucle

Une boucle infinie se produit quand la condition de sortie n’est jamais atteinte. Cela peut bloquer l’exécution du programme. On peut interrompre une boucle avec l’instruction break.

Exemple :

compteur = 0
while True:
    print(compteur)
    compteur += 1
    if compteur == 4:
        break
>> 0
>> 1
>> 2
>> 3

✏️ Exercice 6 : Le juste prix

Écrire un programme qui tire au sort un nombre entier entre 1 et 20 avec le module random, puis demande à l’utilisateur de le deviner. En fonction de sa réponse, le programme affiche :

  • Si le nombre est trop petit, "Trop petit ! Essayez encore."
  • Si le nombre est trop grand, "Trop grand ! Essayez encore."
  • Si c’est correct, "Bravo, vous avez trouvé !"

Cherchez sur internet et expliquez ce qu'est un module en Python et comment l'utiliser.

Vous savez maintenant importer et utiliser un module simple (random) ainsi que vous servir d'une boucle while.

✅ Récapitulatif de Chapitre

Commentaires

Ignorés à l'exécution, ils expliquent le code.

# sur une ligne

"""
sur plusieurs
lignes
"""

Variables

Un nom, un type, une valeur.

longueur = 25

Le nom doit être explicite, commencer par une lettre ou _, et ne contenir ni espace ni accent.

Types de base

  • int entier, par exemple 25
  • float nombre à virgule, par exemple 3.14
  • str chaîne de caractères, par exemple "Salut"
  • bool booléen, True ou False
  • type(x) donne le type de x

Affichage

print("v =", 3, "cm")
print("suite", end=" ")
  • , sépare les éléments affichés
  • \n retour à la ligne
  • \t tabulation
  • end= ce qui termine l'affichage, un retour à la ligne par défaut

Saisie

s = input("Valeur : ")

input() renvoie toujours une chaîne. À convertir ensuite :

  • int(s) en entier
  • float(s) en flottant
  • eval(s) en booléen

Opérations arithmétiques

  • + Addition
  • - Soustraction
  • * Multiplication
  • / Division
  • ** Puissance
  • % Modulo, le reste de la division euclidienne
  • // Division entière, le quotient

Opérateurs d'affectation

  • = Affecte une valeur
  • += Ajoute à la variable
  • -= Soustrait à la variable
  • *= Multiplie la variable
  • /= Divise la variable
  • %= Garde le reste
  • //= Garde le quotient entier

Opérateurs de comparaison

  • == Égal à
  • != Différent de
  • < Inférieur à
  • > Supérieur à
  • <= Inférieur ou égal à
  • >= Supérieur ou égal à

Opérateurs logiques

  • and Vrai si les deux conditions sont vraies
  • or Vrai si au moins une des conditions est vraie
  • not Inverse la condition

Conditions

if age < 18:
    print("mineur")
elif age < 65:
    print("majeur")
else:
    print("senior")

Les deux-points ouvrent le bloc, l'indentation le délimite. elif et else sont facultatifs, et elif peut se répéter.

Boucle while

n = 0
while n < 3:
    n = n + 1

Répétée tant que la condition est vraie.

  • break Sort immédiatement de la boucle
  • continue Passe à l'itération suivante

Boucle for

for i in range(3):
    print(i)

Répétée pour chaque élément. range(3) donne 0, 1 et 2 : la borne de fin est exclue. On peut aussi préciser le début et le pas.

break et continue s'utilisent aussi ici.

Pièges à éviter

  • = affecte une valeur, == compare deux valeurs.
  • Les deux-points et l'indentation délimitent le bloc : les oublier change le sens du programme.
  • input() renvoie une chaîne. Sans conversion, "10" < "9" est vrai : ce sont des textes qui sont comparés, pas des nombres.
  • Une boucle while dont la condition ne change jamais ne s'arrête pas.

Tables de vérité

ABnot Anot BA and BA or Bnot(A and B)not A or not B
FalseFalseTrueTrueFalseFalseTrueTrue
FalseTrueTrueFalseFalseTrueTrueTrue
TrueTrueFalseFalseTrueTrueFalseFalse
TrueFalseFalseTrueFalseTrueTrueTrue

À ne pas oublier

  • Les flottants sont approchés : ne testez jamais leur égalité.
  • La fonction input() renvoie une chaîne, même si l'utilisateur tape un nombre.
  • Un fichier Python s'enregistre avec l'extension .py
  • Ni espace ni accent dans les noms de fichiers et de dossiers.