TP Python #1 – Créer des amis imaginaires

par colivier

Le 14 juillet à 17h16

192

Bonjour ! Bienvenue dans ce premier TP d’une série qui vise à vous apprendre le python !


NaN Le python ?

Le python c’est un langage de programmation, et c’est surement le plus facile à apprendre ! Enfin bon, je peux comprendre que ça ne donne pas très envie à ceux qui ont dû en faire en cours (notamment car les exercices proposés sont ennuyant à mourir), enfin, je m’égare. Enfin, le but de ce TP est de faire découvrir le python au travers d’exercices un peu plus ludique que ceux du livre de cours de maths.


NaN Créer des amis imaginaires ?

Voilà, c’est l’idée ;), en fait, on va écrire un petit programme qui va tirer au sort parmi une liste de noms, de prénoms et d’âges pour créer une identité unique.


NaN Les prérequis

Nous devons avant tout installer python, voici les procédures en fonction de votre système d’exploitation.

NaN Linux

Python est préinstallé sur la plupart des distributions, pour vérifier cela on tape


python -V

pour retourner la version de python. En général ce sera Python 2.x, je vous recommande (pas obligatoire) d’installer une version 3.x comme la 3.7, pour cela je vous laisse faire des recherches en fonction de votre distribution.

NaN Mac OS X

Rendez-vous sur le site de python et téléchargez la Latest Python 3 Release, ouvrez le fichier .dmg et double-cliquez sur le fichier d’installation Python.mpkg, suivez le guide d’installation et c’est bon !

NaN Windows

Si vous avez accès au Microsoft Store (Windows 10), installez-y directement Python, actuellement Python 3.7. Et voilà ! Si vous n’avez pas accès au Microsoft Store, suivez les instructions ci-dessous :

Rendez-vous sur le site de python et téléchargez la dernière version (actuellement 3.7.3), prenez le fichier exécutable installer correspondant à votre processeur (x86 pour un processeur 32bits et x86_64 pour un processeur 64bits. Si vous avez un doute, choisissez Windows x86 executable installer)

Exécutez ensuite le fichier .exe et laissez-vous guidez. Pour vérifier l’installation, rendez-vous dans le menu, vous devriez y voir python.


NaN Sommaire

Voici les points que nous allons devoir aborder avant de pouvoir générer notre programme :

- Les variables

- Les tableaux

- Mise en pratique

- L’aléatoire

- La concaténation

- Parser


NaN Les variables

En python, et comme dans tous langages de programmation, pour stocker des informations en mémoire pendant l’exécution d’un programme, on utilise des variables.

Il faut voir une variable comme une petite boite dans laquelle on peut mettre une information, la récupérer et la modifier.

Dans une variable on peut stocker plusieurs types d’informations, des chiffres entier, des phrases, des booléens (true ou false pour vrai ou faux) et quelques autres, mais ce sont les principales qui vont nous intéresser.

Pour déclarer une variable, on utilise cette syntaxe :


age = 16

Elle a le format


[nom de variable] = [contenu de la variable]

Ici, on a déclaré une variable, appelé age, et qui contient le nombre 16.

Maintenant, si c’est votre anniversaire et que vous avez pris un an, on peut ajouter 1 à la variable age de cette manière :


age = age + 1

Ce qu’on fait ici c’est qu’on met dans la boite age le contenu de age, + 1, donc 16 + 1. Notre variable age contient donc maintenant 17 !

Bon il ne reste plus qu’à vous souhaiter bon anniversaire avec une variable message :


message = "Bon anniversaire"

Ici on met Bon anniversaire dans la variable message. Attention, comme il s’agit d’une chaîne de caractère et non d’un nombre, on doit l’entourer de guillemets.


NaN Les tableaux

Les tableaux sont un autre moyen de stocker des informations, en fait, on va pouvoir mettre dedans plusieurs informations et y accéder via un index. On les déclare comme ça :


animaux = ["chèvre", "chien", "chat"]

On a ici un tableau qui contient chèvre, chien, et chat. Pour récupérer ces informations on va aller chercher ce qui se trouve à la première position de tableau (chèvre), à la deuxième (chien) ou à la troisième (chat). Cette position est ce qu’on appelle l’index. Et l’index commence toujours par 0. Ce qui veut dire que l’index de chèvre est 0, l’index de chien est 1 et l’index de chat est 2 :


["chèvre", "chien", "chat"]
[0, 1, 2]

Et, comme dans les variables, on peut y stocker plusieurs types d’informations comme :


identite = ["Felix", "LEMAITRE", 10]

Bon, dernière chose avec les tableaux, on va voir une fonction qui va nous permettre de récupérer la taille d’un tableau, enfin, le nombre de données qu’il contient.

Si on récupère notre tableau animaux


animaux = ["chèvre", "chien", "chat"]

On peut compter qu’il y trois informations. Maintenant, on peut utiliser la fonction len pour nous donner ce résultat. Elle s’utilise comme ça :


taille = len(animaux)

La partie len(animaux), c’est notre fonction len, à qui on donne notre tableau animaux, pour qu’elle nous retourne sa taille. Enfin, on met le résultat dans la variable taille.


NaN Mise en pratique

Bon, ça fait un petit moment que je parle et que vous ne faîtes rien. Dans ce chapitre nous allons mettre en pratique les chapitres précédents. Créez un fichier hello.py et ouvrez-le avec votre éditeur de texte préféré (avant cela, si vous êtes sous Windows, cocher l’option Extensions de noms de fichiers dans la partie Afficher / Masquer du menu Affichage de l’explorateur de fichiers)


Copiez ensuite ce code dans votre fichier :


# -*-coding:Utf-8 -*
import os
print("hello world!")
#Sert seulement sous Windows à mettre en pause le programme afin d'avoir le temps de voir le résultat
if os.name != "posix":
    os.system("pause")

/!\ Sous Windows, remplacez la première ligne par celle-ci :


# -*-coding:Latin-1 -*

Les lignes import os, if os.name != "posix": et os.system("pause") ne servent que sous Windows, elles permettent de vous laissez voir le résultat de votre programme. Sans elles, le terminal se fermerait avant que vous ayez eu le temps de le voir.


Bon, plusieurs nouvelles choses ! Python va s’exécuter dans un terminal, pour y écrire quelque chose, on utilise donc l’instruction print() dans laquelle on passe ce que l’on veut écrire, ici la chaine de caractères hello world!.

La ligne # --coding:X - permet de préciser l’encodage du fichier pour afficher des accent et des caractères spéciaux.


En Python, le # indique un commentaire, c’est-à-dire que tous ce qui se trouve après n’est pas lu par l’interpréteur, il ne fait pas partie du code et sert seulement à donner des indications à celui qui lit le code.


NaN Nous allons maintenant exécuter ce code.

NaN Sous Linux et Mac OS X

Ouvrez un terminal et naviguez à coup de cd jusqu’au répertoire ou se trouve votre fichier hello.py et lancez la commande


python hello.py

NaN Sous Windows

Double-cliquez sur le fichier hello.py, une console devrait s’ouvrir et vous montrer le résultat de votre code, sinon, clique droit puis ouvrir avec Python.


NaN L’aléatoire

Nous allons dans notre programme avoir besoin de l’aléatoire. Et en informatique, l’aléatoire total est très compliqué à obtenir, en python, nous allons d’abord devoir importer le module random en ajoutant en haut du programme


import random

Bien, ce module nous donne mainteant un accès à plusieurs fonctions pour obtenir des chiffres aléatoires. Dans ce cours, nous allons utilisez random.randint(min, max) pour obtenir des chiffres aléatoires entre min, et max.

Si vous voulez mettre dans la variable de (dé, mais on ne peut pas mettre d’accent dans les noms de variables) un chiffre entre 0 et 6, vous allez taper ça :


de = random.randint(0, 6)

On peut maintenant l’afficher avec


print(de)

Je vous conseille de tester ce code à l’aide du chapitre précédent et de mettre aussi en pratique les chapitres sur les variables et les tableaux ainsi que les prochains chapitres.


NaN La concaténation

La concaténation, c’est l’addition de phrase, grâce à elle, on va pouvoir ajouter deux phrases pour en obtenir une nouvelle :


prenom = "Jack"
nom = "BOULANGER"
print("Je m’appelle " + prenom + " " + nom)

Ici la variable prenom (sans é car on ne met pas d’accent dans les noms de variables) contient la chaîne de caractères Jack. La variable nom contient la chaîne BOULANGER et l’instruction print prend "Je m’appelle" + prenom, elle ajoute donc le contenu de prenom à la chaine Je m’appelle et ainsi de suite avec l’espace et le nom.

Cette nouvelle phrase peut aussi être mise dans une variable puis être affiché :


prenom = "Jack"
nom = "BOULANGER"
presentation = "Je m’appelle " + prenom + " " + nom
print(presentation)

NaN Parser

Si l’on reprend la concaténation de tout à l’heure et que l’on veut y ajouter notre age, on peut ajouter une variable age et on obtient le code suivant :


prenom = "Jack"
nom = "BOULANGER"
age = 16
presentation = "Je m’appelle " + prenom + " " + nom + ", j’ai "  + age + "  ans !"  
print(presentation)

Essayer ce code, il ne marche pas, on obtient une erreur :


TypeError: can only concatenate str (not "int") to str

Cette erreur nous dit que l’on peut que concaténer (additionner) des chaînes de caractère (str pour string) entre elles et pas des chiffres (int pour integer)

Il va donc nous falloir transformer cet entier en chaine de caractères et pour faire ça, on va utiliser une fonction qui va prendre en paramètre notre entier (le chiffre) et nous retourner notre chaine de caractères. Cette fonction est str() et on l’utlise de cette manière :


age = 16
chaineAge = str(age)

ou


chaineAge = str(16)

Alors maintenant, pour corriger le code précédent, on va modifier ce que l’on met dans la ligne présentation pour remplacer age par str(age)


prenom = "Jack"
nom = "BOULANGER"
age = 16
presentation = "Je m’appelle " + prenom + " " + nom + ", j’ai "  + str(age) + "  ans !"  
print(presentation)

Et voici pour le parsement, on va pouvoir passer au TP, avant de le découvrir je vous invite à jouer avec les exemples du cours pour être bien à l’aise avec ces notions.


NaN Le TP ! Le TP !

Je vais maintenant vous laisser réfléchir un petit peu à la manière de faire puis vous laisser regarder le code, je le détaillerai ligne par ligne juste après.


import random
import os #Utilisé à la dernière ligne
 
firstNames = ["Alexandre", "Justine", "Louis", "Félix", "Manon"]
 
names = ["MARTIN", "LEMAITRE", "CHAUVIN", "BOULANGER", "LEBRUN", "FERNANDEZ"]
 
ages = [10, 55, 23, 48, 16, 89]
 
lenFName = len(firstNames)
randFNameIndex = random.randint(0, lenFName - 1)
randFName = firstNames[randFNameIndex]
 
lenName = len(names)
randNameIndex = random.randint(0, lenName - 1)
randName = names[randNameIndex]
 
lenAge = len(ages)
randAgeIndex = random.randint(0, lenAge - 1)
randAge = ages[randAgeIndex]
 
print("Vous avez généré " + randFName + " " + randName + ", " + str(randAge) + " ans !")
#Sert seulement sous Windows à mettre en pause le programme afin d'avoir le temps de voir le résultat
if os.name != "posix":
    os.system("pause")

Allons-y décomposons, les deux premières lignes ont cette forme :


import [nom du module]

Et ces modules, c’est ici random et os, random est le module pour l’aléatoire, os est le module qui va permettre d'interagir avec le système, on l’utilise ici pour mettre le programme en pause à la fin de son exécution (et avoir le temps de voir le résultat rappelez-vous)


Linux et Mac OS X

Si vous lancez le script depuis la console (ce que je vous conseille), la deuxième et les deux dernières lignes peuvent être supprimées, elles ne servent que sous Windows pour que la console ne se ferme pas.


firstNames = ["Alexandre", "Justine", "Louis", "Félix", "Manon"] on définit un tableau (firstNames) de chaînes de caractères (les prénoms).


names = ["MARTIN", "LEMAITRE", "CHAUVIN", "BOULANGER", "LEBRUN", "FERNANDEZ"] cette ligne définit un tableau names de chaines de caractères (les noms)


ages = [10, 55, 23, 48, 16, 89] on définit un tableau (ages) composé d’entier


lenFName = len(firstNames)

randFNameIndex = random.randint(0, lenFName - 1)

randFName = firstNames[randFNameIndex]

Ces lignes sont présentes trois fois de suite sous une forme un peu différente : c’est le tirage au sort (des prénoms, des noms, puis des ages).


lenFName = len(firstNames) on met dans une variable lenFName la taille du tableau obtenue par la méthode len()


randFNameIndex = random.randint(0, lenFName - 1) on pioche un chiffre au hasard dans les index de notre tableau de prénoms (on n’oublie pas que les index commencent à 0 et se terminent donc par la taille de l’index, moins 1)


randFName = firstNames[randFNameIndex] on met dans randFName, qui est notre prénom aléatoire une des cases du tableau name, celle qui a l’index que l’on a pris au hasard


print("Vous avez généré " + randFName + " " + randName + ", " + str(randAge) + " ans !") cette ligne affiche dans la console (grâce à print()) une concaténation de chaînes de caractères, on ajoute Vous avez généré au contenu de la variable randName, on ajoute un espace puis le contenu de randFName. On termine avec une virgule, le contenu de randAge, que l’on transforme en chaine de caractères grâce à str() puis on ajoute ans ! Pour terminer notre phrase.


Et voilà ! Vous pouvez tester votre script, n’hésitez pas à le modifier pour vous entrainez avant le prochain TP !

N’hésitez pas à laisser un avis dans l’espace commentaire et posez-nous vos questions sur les réseaux sociaux (infos de contact en bas de page) !

COMMENTAIRES

Vous devez être connecté pour ajouter un commentaire ou pour répondre à quelqu'un !
SE CONNECTERS'INSCRIRE

Aucun commentaires… Soyez le premier à en ajouter un !