Introduction à Python

Découvre Python : le langage magique qui transforme tes idées en réalité avec facilité et amusement. 🐍💻✨

Introduction

Avant de commencer

  • Si tu ne comprends pas quelque chose, n’hésite surtout pas à demander à un orga ! Nous sommes là pour ça !
  • On te conseille de créer un fichier par exercice, tous dans le même dossier.
  • On te conseille fortement de tester tous les codes présents dans ce TP, même s’ils ne sont que des exemples. Si tu ne comprends pas comment ils fonctionnent, ou que quelque chose cloche, n’hésite pas à appeler un orga.

Derrière toutes les applications et les logiciels que vous utilisez sur votre ordinateur ou votre téléphone se cache en réalité des centaines de lignes de codes dans des fichiers. Ces dernières ne sont qu’un ensemble d’instructions dictant le fonctionnement du programme.

Votre ordinateur est capable d’exécuter plein d’opérations très rapidement mais ne comprend qu’un seul langage, le langage machine.

Les humains étant incapable de comprendre ce langage, nous passons donc par des langages de programmation qui sont plus lisibles pour nous. Puis ce langage est traduit pour l’ordinateur. Pour cela, il existe des programmes dédiés à la traduction du code en langage machine, qui demande de respecter une syntaxe précise sans quoi il ne peut pas fonctionner. Nous utiliserons le langage Python pour ce stage.

Types de données

En Python il existe plusieurs types de données, de valeurs comprises par l’ordinateur, les plus connues sont :

  • Les entiers qui sont juste des nombres.
  • Les chaînes de caractères utilisées pour stocker du texte. L’intérêt est de préciser à l’ordinateur que les mots ou nombres qui suivent sont à prendre littéralement. On reconnait une chaîne quand elle commence et se termine par des guillemets.
1
2
3
4
5
6
7
8
"Ceci est une chaîne de caractères."
"1" # Ici il s'agit d'une chaine avec le caractères '1'
1 # Ici il s'agit de l'entier 1

# Ici, il faut noter la différence entre `1` et `"1"`,
# même si elles représentent toutes les deux la valeur 1,
# ce ne sont pas du tout les mêmes types !
# On ne peut donc pas les utiliser de la même manière.

Bon à savoir : les commentaires

Le texte écrit après le # est ce qu’on appelle un commentaire. Ce sont des textes qui sont ignorés par ta machine, ils servent juste à donner plus d’explications à la personne qui relit le programme.

  • Les booléens qui servent à représenter Vrai ou Faux. (Nous verrons ça plus tard)
1
2
True
False

La fonction print

Dans notre fichier on peut donc écrire plusieurs types de données et d’opérations à la suite ainsi :

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

Si on lance le code avec le bouton Run, rien ne se passe. En réalité, l’ordinateur a exécuté les opérations et a aussi pris en compte le code écrit. Néanmoins, les résultats de ses opérations ne sont ici par observables car l’utilisateur n’a pas demandé de les afficher.

Il existe une différence entre ton fichier et la console (qu’on appelle aussi terminal). La console permet d’afficher certaines données lors de l’exécution du code grâce à ce qu’on appelle des fonctions.

On reconnait une fonction par les parenthèses qui sont après le nom de cette dernière.

Elle peut ou non prendre des arguments. Un argument de fonction c’est une valeur qui sera utile à l’intérieur de la fonction. Lorsque des arguments sont requis, ils sont passés entre parenthèses et séparés par des virgules s’il y en a plusieurs.

1
2
3
fonction_sans_arguments() # Ce sont juste des exemples
fonction_avec_argument(2) # Ces fonctions n'existent pas
fonction_plusieurs_arguments(1, 2, "oui")

Python met à disposition plusieurs fonctions pratiques dont print qui permet d’afficher des valeurs dans la console. En reprenant le code du dessus mais en rajoutant la fonction print, les résultats seront observables :

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

Essaye de cliquer sur le bouton Run pour lancer ton programme Python !

print prend un nombre quelconque d’arguments et les affichera tous, séparés par un espace.

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

Hello World !

À toi jouer ! Essaye d’écrire un code qui affiche Hello World ! dans la console.

Les opérateurs

Python nous permet d’effectuer des opérations, comme une calculatrice très perfectionnée. Essaie le programme suivant :

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

Tu remarques qu’ici, il n’y a pas de guillemets, on veut donc utiliser des entiers et non des chaînes de caractères.

Tu peux essayer de voir ce qui se passe si tu écris plutôt print("x") ou print("4 + 3").

Mais Python ne permet pas seulement de faire des additions. Tu peux aussi utiliser les signes -, *, / pour effectuer des soustractions, des multiplications et des divisions. N’hésite pas à essayer !

Pour aller plus loin

En plus des quatre opérations classiques, Python propose d’autres opérateurs comme : // et %.

Essaie-les pour comprendre ce qu’ils font.

Variables

Pour l’instant, nos valeurs sont un peu éparpillées au travers de notre programme. Si on faisait un lien avec la vraie vie, ça serait comme avoir ses affaires éparpillées partout dans sa chambre, c’est pas très propre et ça peut devenir difficile de s’y retrouver.

L’idéal serait de pouvoir ranger tout ça et éventuellement avoir un moyen de retrouver ce qu’on veut facilement.

En programmation, c’est pareil et nous utilisons pour cette raison des variables. On peut voir les variables comme des tiroirs avec des étiquettes dessus.

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

Bonne pratique

Dans la pratique on privilégie des noms courts et pertinents pour nommer ses variables. Bien nommer ses variables permet de grandement simplifier la compréhension du code généré.

Par exemple, le nom de la variable c n’est pas le plus clair. Il pourrait contenir n’importe quel type de données, ce nom complique la compréhension du code. Ne serait-ce pas plus clair de l’appeler hello à la place ?

Opérations avec des variables

Mais ce qui est encore plus pratique, c’est que l’on peut effectuer des opérations avec les valeurs contenues dans nos variables. Essaie par exemple le programme suivant :

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

À quoi ça sert ? Ici, le calcul est très simple, mais imagine que tu aies beaucoup d’opérations à effectuer.

En écrivant ton programme avec des variables, tu n’as qu’à changer leurs valeurs au début pour pouvoir refaire toutes ces opérations sans avoir à écrire de nouveau du code.

Si tu voulais plutôt calculer 5 + 3 ici, il suffirait de remplacer la première ligne par a = 5.

Il s’agit de ton premier programme avec plusieurs instructions, et donc plusieurs lignes. En Python, avoir une seule instruction par ligne est une bonne pratique. Une instruction, c’est une tâche que l’on demande à l’ordinateur d’effectuer : affiche ceci, mets cette valeur dans cette variable, etc.

Pour aller plus loin

En Python, on peut utiliser les variables de différentes manières. Il est possible d’effectuer des opérations diverses sur le contenu de chaque variable en fonction de son type de données. Par exemple, si une variable contient un entier, il sera possible d’effectuer des opérations mathématiques diverses. Ces deux opérations peuvent s’écrire de deux façons différentes, bien que le comportement soit fondamentalement le même. Essaie par exemple le programme suivant :

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

On remarque que += est équivalent à l’opération d’addition entre a et 5, dont le résultat est ensuite stocké dans a.

Ce n’est pas la seule opération que l’on peut effectuer avec ce raccourci. On peut le faire avec les autres opérations vues précédemment -=,*=,/=.

Différence entre += et =+

Attention à l’ordre des éléments, += et =+ ne veulent pas dire la même chose. Avec += on va d’abord effectuer l’addition puis on met le résultat dans la variable alors que pour =+ on définit la variable avec la valeur à gauche de l’opérateur (a=+8 c'est la même chose que a=8).

Contrôler son code

Lecture par l’ordinateur

En Python, les instructions sont lues et traduites ligne par ligne, mais il existe des situations où on a envie de lancer un bout de programme seulement dans un contexte précis ou de manière répétée. Il faut donc l’isoler du reste du code. Cette section y est dédiée.

Identation

Python utilise l’indentation pour isoler certains bouts de codes. Mais l’indentation, qu’est-ce que c’est ?

Il s’agit en fait de l’espace en début de ligne. Le nombre d’espace n’est pas important tant que c’est la même dans tout le bloc qu’on souhaite isolé, ici nous utiliserons 4 espaces.

On peut voir l’indentation comme quelque chose qui divise le ‘bloc’ de code en différent sous-blocs.

1
2
3
4
5
"Cette ligne n'est pas indentee" # 0 espaces = pas d'indentation

    "Celle la si" # 1 niveau d'indentation = 4 espaces

        "Celle la encore plus" # 2 niveau d'indentation = 8 espaces

Mais Python ne nous laisse pas indenter comme bon nous semble, le code au-dessus provoquera une erreur. Puisque l’indentation sert à isoler le code, il faut une raison d’isoler ! Une manière de le faire est avec l’utilisation du mot-clé if.

Conditions

Imaginons qu’on a un programme que l’on souhaite vérifier si une variable que l’on a créée est plus grande que 0. En informatique on utilise ce qu’on appelle des booléens.

Les booléens sont utilisés pour représenter des valeurs de vérités. Le booléen peut prendre deux valeurs différentes : True ou False, soit vrai ou faux. Donc pour contrôler son code, on utilise des conditions qui sont ensuite interprétées comme des booléens.

Pour créer une condition il suffit juste d’écrire le mot-clé if (“si” en français), suivi de la condition qu’on veut tester avec un : à la fin de la ligne.

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

On peut donc enfin voir à quoi ressemble l’indentation expliquée juste avant. Inutile de trop se prendre la tète avec l’indentation. La plupart du temps, l’éditeur de code que vous utiliserez indentera automatiquement de la bonne manière après un if ou les autres ‘mots-clés’ qui nécessitent un niveau d’indentation.

On utilise du coup des opérations booléennes pour tester des conditions

  • Pour vérifier “a est inférieur à b” on écrit a < b
  • Pour vérifier “a est supérieur à b” on écrit a > b
  • Pour vérifier “a est inférieur ou égal à b” on écrit a <= b
  • Pour vérifier “a est supérieur ou égal à b” on écrit a >= b
  • Pour vérifier “a est égal à b” on écrit a == b
  • Pour vérifier “a est différent de b” on écrit a != b.

Dans le code suivant, on affiche quelque chose si et seulement si n est plus grand que 0.

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

Dans la situation au-dessus, le print ne se fera jamais car n est inférieur à 0, donc la condition est fausse et vous ne verrez rien sur la console.

Et que faire si l’on veut réaliser une opération lorsque la condition n’est pas remplie ? Dans ce cas, on utilisera le mot-clé else, qui signifie “sinon” en français.

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

Mais que se passe-t-il si on voulait tester plusieurs conditions ?

Imaginons que nous avons une variable n entre 0 et 5 et que nous voulions savoir lequel c’est ? Nous pouvons utiliser le mot-clé elif dans ce cas.

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

Bon, on ne va pas se le cacher le code au-dessus n’est pas très joli, et si on voulait aller jusqu’à 10 il faudrait encore rajouter des lignes à la main. De plus, on ne fait que de répéter la meme action en changeant juste le nombre.

Fort heureusement, il existe un moyen de répéter des actions de manière contrôlée.

Boucles

for ou while ?

Il existe deux types de boucles en Python. Les boucles while et les boucles for.

While

Cette boucle se traduit par tant que en français. On peut voir cette boucle comme la répétition d’un if tant que la condition est vraie.

Donc si on en revenait à l’exemple d’avant avec une boucle while à la place :

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

Ca devient déjà beaucoup plus propre d’un coup, et en plus pas besoin de rajouter des lignes si on veut chercher plus loin ! Il suffit juste de changer la condition.

For

Il existe une autre manière de créer une boucle. La boucle while est pratique pour répéter une action tant que la condition vérifiée par la boucle est vraie mais si on n’a pas de condition à vérifier on préfère utiliser la boucle for.

La boucle for est pratique pour répéter une action un nombre fixe de fois, ou pour parcourir des ensembles (des listes par exemple, on verra ce que c’est plus tard). Si on échangeait la boucle de l’exemple précédent, on aurait :

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

On peut apercevoir ici une nouvelle fonction mise à disposition par Python, la fonction range. Cette fonction permet à partir d’un nombre de créer une suite de nombres (une espèce d’ensemble). À noter que cette fonction, comme print, peut prendre plusieurs arguments (3 maximum) qui correspondent au début de la suite, la fin de la suite et enfin la distance entre les nombres (qu’on appelle la raison de la suite).

1
2
3
range(5)       # 0 1 2 3 4
range(1, 5)    # 1 2 3 4
range(0, 6, 2) # 0 2 4 

Un peu de pratique

Maintenant que les bases sont posées, il est temps de mettre en pratique ces nouvelles connaissances.

Tu as une tirelire vide contenant 0 pièce. Écris un programme en Python qui, à chaque tour de boucle :

  • demande à l’utilisateur combien de pièces il souhaite ajouter dans la tirelire
  • affiche le nombre total de pièces tant qu’il est inférieur à 25

Pour ce faire, tu pourras utiliser toutes les fonctions vues précédemment.

Pour obtenir le nombre de pièces entré par l’utilisateur, tu peux utiliser la fonction input() comme l’exemple suivant :

1
2
3
# Demande à l'utilisateur un nombre et l'assigne à "valeur"
valeur = int(input())
print(valeur)

Jusque-là on parle de fonctions que Python nous propose mais il est possible de créer nos propres fonctions ! Plus d’explications dans la section suivante.

Les fonctions

Que fait le code suivant ?

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

Ici, on cherche à afficher tout nombre jusqu’à 15 plus grand que a puis ceux plus grand que b.

Encore une fois si on cherchait à faire cela avec d’autres valeurs, il faudrait donc refaire une nouvelle boucle ?

Heureusement, non ! Les deux boucles sont identiques, il serait donc plus intéressant de l’écrire une seule fois non ?

Une fonction est un bout de programme qui effectue une action, et que l’on va pouvoir utiliser plusieurs fois.

Pour créer une fonction, il faut 5 éléments :

  • le mot-clé def
  • le nom de la fonction
  • des parenthèses
  • deux points
  • une indentation à la suite
Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

Maintenant, si on voulait ‘appeler’ la fonction plus_grand_que, il suffirait juste de le faire comme on l’a fait avec print ou range.

Une fonction peut aussi être utilisée pour créer un résultat. Jouons à un jeu, nous allons écrire une fonction qui permettra de lire dans les pensées (enfin presque).

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

Nous utilisons le mot-clé return pour stopper la fonction en précisant qu’il est possible de récupérer une valeur depuis celle-ci.

En écrivant return resultat, il est donc possible de récupérer la valeur à la fin de toutes les opérations de la fonction. La fonction range est un exemple de fonction à valeur de retour, contrairement à la fonction print !

Interagir avec le code (IO)

Si on voulait tester notre tour de magie avec plusieurs personnes, avec ce qu’on a vu pour l’instant, on serait contraint de changer le fichier de notre programme constamment, sauvegarder et relancer le code.

Si j’en parle, c’est bien sûr parce que Python nous permet de faire plus simple. Dans de multiples applications que tu utilises au quotidien, il est possible de saisir des valeurs, d’entrer un texte, un nombre ou autre.

Écrivons un programme qui demande et affiche ton nom. En Python, on utilisera la fonction input():

1
2
3
print("Quel est ton nom ?")
nom = input()
print("Tu t'appelles", nom, "!")

Au lancement du code, la console semblera être bloquée. En réalité input() bloque le code et attend une entrée de votre part.

Cette fonction a elle aussi une valeur de retour qui est une chaîne de caractères.

Valeur de retour de input()

Attention ! Comme expliqué dans la partie type de données, si on entrait 5 dans la console, le résultat de la fonction input() sera la chaîne de caractères "5" et non la valeur numérique 5.

1
2
3
4
n = 5
entree = input()
if entree == 5: # Ca sera toujours faux, on compare deux types differents
    print("Cinq")

Bien sur, Python (il est fort quand même) a quelque chose pour cette situation avec la fonction int:

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

Enfin, si on intégrait ce qu’on vient d’apprendre dans cette partie pour notre tour de magie, ça donnerait :

Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :

        

    

Bien évidemment, tu peux coder de la manière que tu souhaites. Cette partie est juste là pour te montrer quelques fonctionnalités et bonnes habitudes qui peuvent t’être utiles.

Passe maintenant aux TP suivants pour pouvoir accomplir plus de choses en programmation, dont des petits projets et mini jeux.

Retour au Menu