Premier programme en python

Jeu du serpent

Quoi de plus logique que d'apprendre python à partir le jeu du serpent ! Le jeu du serpent pour ceux qui ne connaissent pas est un jeux vidéo classique en 2D où le joueur contrôle l'évolution d'un serpent. Ce serpent doit manger des pommes. A chaque fois qu'il mange une pomme son corps s'allonge. Si le serpent se mord la queue la partie s'arrête. C'est donc ce jeux que nous allons tenter d'écrire. L'écran sera cependant remplacé par une matrice de LED intelligente RVB 8x8.

Le terminal et ses commandes

  • Lancer le terminal.

Dans le terminal ci-dessus, la ligne avant le $ est appelée le prompt. pi@raspberrypi correspond à l'utilisateur pi et raspberrypi est le nom (attribué par défaut) de la machine. elle indique également dans quel répertoire on se situe : ici ~correspond au répertoire /home/pi. Des "commandes" peuvent être exécutées en tapant leur nom.

la commande ls (list directory content) permet d'afficher le nom des fichiers et des répertoires contenu dans le répertoire où l'on se situe : ~ (ou /home/pi).

Une autre commande utile permettant de créer des fichiers : mkdir + Nom du fichier.

Exemple : Création d'un répertoire Python dans /home/pi

La commande cd quant à elle permet de changer de répertoire (Change Directory).

Exemple : Se placer dans le répertoire nouvellement créé : Python

Remarque

Pour se déplacer dans le répertoire parent (noté ..)

1
cd ..

A vous de jouer !

  • Se placer dans le répertoire ~/python_games

  • lancer le script launcher.sh : ./laucher.sh

  • sélectionner le jeu Wormy et tester le histoire de vous donner une idée du programme que nous allons réaliser en python

Python

Le prompt Python 3

Lancer le shell python Menu Démarrer->Programming->Python 3.

Ce shell nous permet de saisir directement les instructions en python. Un nombre important de fonctions compose la librairie standard de python. Ces fonctions réalise une tâche bien spécifique variant en fonction des paramètres passés entre parenthèses. Exemple : Afficher "Sacré Graal !" :

La fonction print() peut prendre un nombre de paramètre non-fixé. On peut en effet saisir :

On constate ainsi que :

  • Les chaînes de caractères sont concaténées

  • Des paramètres nommés (sep, end) peuvent être ajoutés à la fin

  • Une chaîne de caractère est délimitée soit par des guillemets soit par des apostrophes.

La fonction print() aussi peut prendre des nombres en paramètre:

Variables et types

Nous avons vu précédemment que la fonction print prend des chaînes de caractères en paramètre. Il existe d'autre type en python. Contrairement au C il est inutile de définir le type des variables que l'on utilise. Ce type est déterminé automatiquement (typage dynamique fort).

La fonction type() permet de déterminer le type d'un élément ainsi :

On voit ainsi apparaître le type des différents éléments (str pour chaîne de caractère, int pour les entiers, float pour les réels, bool pour les booléens. Pour stocker des valeurs ou modifier ces valeurs on utilise des variables (qu'on ne déclare pas comme en C) :

Ainsi, une fois affectées les variables peuvent être les utilisées pour faire des opérations classiques ou afficher leur valeur. On remarque également que dans le prompt et uniquement dans le prompt on peut afficher le contenu d'une variable en tapant juste son nom (ici somme).

L'addition de deux chaînes de caractères réalise une concaténation (mise bout à bout des chaînes :

L'addition d'une chaîne et d'une constante donne une erreur de type (TypeErreur). Le message indique que l'entier ne peut pas être converti en chaîne implicitement.

Une solution possible pour spécifier explicitement la conversion avec la fonction str():

Modules

La taille de l'ensemble des fonctions disponibles par défaut lorsque l'on invoque python: la librairie standard, est relativement grande. Cependant pour développer des programmes plus spécifiques (analyse numérique, traitement du signal, interface graphique) on a recours à des modules externes.

Par exemple pour pouvoir utiliser la fonction randint() qui génère des nombres aléatoires, il est nécessaire d'importer sont module associé : random().

On peut voir qu'il est nécessaire de préfixer la fonction avec le nom du module suivi d'un point (random.randint()). La méthode pour s'en affranchir est d'importer le module suivant une autre syntaxe :

On peut également importer juste la fonction qui nous intéresse :

Enfin on peut aussi renommer le module :

Help !

La fonction help permet d'obtenir un résumé succinct sur ce que fait la fonction et quels doivent être les paramètres d'entrée : Exemple : help() sur la fonction randint() :

Travailler avec l'éditeur de script

Toutes le code python que l'on a saisi dans le prompt peut être saisi dans un fichier et exécuter dans un second temps.

Pour ouvrir un fichier dans lequel on écrira un programme en python, cliquer sur File->New File (Ctrl+N).

Rappel

Les instructions saisies dans ce fichier ne sont pas immédiatement exécutées par le prompt.

On peut ainsi créer un premier programme nommé exemple.py et le sauvegarder dans le répertoire Python/.

On peut remarquer que la coloration syntaxique permet de mieux repérer d'éventuelles fautes de frappe. NB : Le numéro de ligne et de colonne où se trouve le curseur dans le fichier.

Pour exécuter le programme : Run->Run Module (F5) et admirer le résultat dans le prompt :

ComplémentExécuter le programme dans un terminal

Il est possible d'exécuter le script à partir d'un terminal. Pour cela il faut se rendre dans le répertoire où se situe exemple.py et taper : python3 exemple.py Il est également possible de rendre exemple.py executable en tapant seulement son nom. Pour cela il faut mettre en entête du ficher (appelé shebang) un

commentaire indiquant l'interpréteur python utilisé :

Et enfin rendre le fichier exécutable :

Pour lancer le programme il suffit alors de saisir : ./exemple1.py

En résumé ...

Dans un terminal :

  • ls permet de lister les éléments présent dans le répertoires courant

  • mkdir permet de créer un répertoire

  • cd permet de changer de répertoire ( .. pour le répertoire parent)

  • lancer un exécutable en tapant ./nom_du_programme

En Python :

  • print permet d'afficher des message et des valeurs

  • Les modules importés (import) permettent d'étendre le langage (nouvelles fonctions !)

  • help permet d'obtenir de l'aide

  • Pour ouvrir l'éditeur Python : File-> New File

  • Pour exécuter un programme : Run -> Run Module

  • Depuis le terminal il faut taper python3 exemple.py