POIRET Aurélien Algorithmique MPSI Algorithmique Chapitre N o I : Introduction à Python Un algorithme est une suite nie d'opérations élémentaires constituant un schéma de calcul ou de résolution de problème. Une fois conçu, on traduit l'algorithme dans un langage de programmation (Python, Mapple, Scilab, Pascal etc...) qui convertit les instructions en langage machine et permet ainsi à l'ordinateur d'exécuter l'algorithme. Faire de l'algorithmique, c'est donc décomposer un problème complexe en des sous-problèmes de plus en plus simples jusqu'à arriver aux actions élémentaires que connaît l'ordinateur. Cette année, vous allez programmer en Python, de préférence avec la version 3. J'attire votre attention sur le fait que Python n'est pas un nom de logiciel mais bien un langage de programmation. Nous utiliserons donc l'environnement Spyder pour programmer en Python. Si ce n'est pas encore fait, un tel logiciel s'installe à partir du lien suivant : http://sourceforge.net/projects/winpython/files/winpython_3.3/3.3.5.7/ 1 Prise en main avec l'environnement Spyder L'environnement Spyder se décompose en plusieurs fenêtres. Il faut bien faire la diérence entre l'interpréteur et l'éditeur. L'éditeur sera l'endroit où vous taperez vos programmes en langage Python. L'interpréteur sera l'endroit où vous exécuterez vos programmes. L'interpréteur sert également de calculatrice, c'est l'endroit où vous taperez vos calculs et c'est aussi l'endroit ou vous pourrez tester l'écriture d'une ligne de commande. Je vous conseille également de laisser à votre disposition la fenêtre de l'explorateur de variables et celle de l'explorateur d'objets. 1
2
Sur la capture d'écran précédente, vous pouvez identier un chier d'édition dans le fenêtre de gauche (qui correspond à notre éditeur), notre console dans la fenêtre en bas à droite (qui correspond à notre interpréteur) et les explorateurs de variables et d'objets Pour écrire un nouveau programme, il sut de cliquer sur chier puis nouveau chier. Le premier réexe est de sauvegarder votre programme avec un nom cohérent (sans espace, sans tiret et sans caractère spécial). Une fois votre programme écrit, n'oubliez pas de le sauvegarder avant de l'exécuter. Pour cela, il sut de cliquer sur la touche raccourcie clavier F5. Le début d'un programme commencera toujours, et dans cet ordre, par l'encodage utilisée, la plupart du temps # -*- coding: latin1 -*-, puis, par la date de création du programme et le nom d'auteur, puis, par les bibliothèques, les fonctions et procédures que vous importez. Ce sera seulement après ces lignes de code que commencera l'écriture de votre programme. Exemple 1 : On écrit le programme intitulé age contenant les lignes suivantes : # -*- coding: latin1 -*- """ @author: POIRET """ age=eval(input("tu as quel âge?")) # On définit la variable age qui demande notre âge print("tu as donc",age,"ans.") # On retourne notre âge avec le texte adéquat Lorsque l'on exécute ce programme dans l'interpréteur, on obtient le résultat suivant > > > runfile('c:/users/poiret/age.py', wdir='c:/users/poiret') Tu as quel âge? 18 Tu as 18 ans. La commande # sert à écrire des commentaires. Si les commentaires ont lieu sur plusieurs lignes, on les écrit entre """. La commande \ sert pour aller à la ligne dans l'éditeur sans que l'interpréteur lui aille à la ligne : cela sert surtout lorsque nous avons une longue ligne de code et que nous voulons la voir complète à l'écran. La commande print permet d'écrire un texte. Attention, n'oubliez pas de mettre entre parenthèses tout le texte à acher (pas nécessaire avec la version 2.7). La commande input permet de dénir une variable. Attention avec la version 3.3 de Python, il faut précéder cette commande du mot clef eval an d'éviter que la variable dénie soit interprétée comme une chaîne de caractères. Nous expliquons ce qu'est une variable dans la partie suivante. 2 Les variables Une variable est une représentation idéale d'une zone de mémoire de l'ordinateur. Il s'agit d'un endroit où l'on peut stocker une valeur, y accéder et changer cette valeur. Une variable se caractérise par un nom qui permet de l'identier, 3
une valeur, son type (entier, ottant, chaîne de caractères, liste ou booléen). L'aectation est l'instruction qui permet d'assigner une valeur à une variable. Si cette dernière n'existe pas encore, on parle de déclaration de la variable. Elle correspond au codage nom_de_variable valeur. En python, cela se fait à l'aide de la syntaxe suivante : nom_de_variable=valeur. Exemple 2 : On peut écrire dans l'interpréteur, la liste de commande suivante : > > > X=3.14 > > > X 3.14 > > > Y="J'aime l'école!" > > > Y "J'aime l'école!" Dans l'exemple précédent, on note qu'il existe plusieurs types de variables (en l'occurrence ici, les ottants et les chaînes de caractères). Voici les diérents types de variables qu'il est impératif de connaître : Type de variable Syntaxe en Python Description Entiers relatifs int Entiers de -214748364 à 214748364 Nombres à virgule float Nombres décimaux Listes list Tableaux formés de lettres et nombres Chaînes de caractères str Tableaux formés uniquement de lettre Booléens bool Peut prendre deux valeurs True ou False Lorsque l'on dénit une variable, il faut donc avoir en tête le type de variable que nous avons dénie. En cas de doute, vous pouvez utilisez la fonction type(variable) où vous remplacer variable par votre variable. Il peut-être également utile de savoir comment convertir un type de variable en un autre type de variable. Le tableau récapitulatif à connaître est le suivant : A utiliser int(x) float(x) str(x) list(x) [x] Pour transformer Le type float en type int Exemple : int(2.5) retourne 2 Le type int en type float Exemple : float(2) retourne 2.0 Le type int, float ou list en type str Exemples : - str(3). retourne '3' - str(3.0) retourne '3.0' - str([1,2,3]) retourne '[1,2,3]' Le type str en type list Exemple : list("test'') retourne ['t','e','s','t'] Le type float ou int en type list Exemples : - [3] - [3.0] 4
Enn, il peut être important de connaître les opérations élémentaires que nous pouvons eectuer sur les variables. En voici une liste : Opérateur Utilité + Addition - Soustraction * Multiplication / Division % Modulo (reste de la division) // Quotient (de la division) ** Puissance += Rajouter à la variable -= Enlever à la variable *= Multiplier à la variable /= Diviser à la variable Attention, le résultat de ces dernières opérations peut dépendre du type de la variable considérée. Exemple 3 : Voici quelques exemples : Syntaxe rentrée dans l'interpréteur Résultat obtenu 3+3 6 2**3 8 13%4 1 13//4 3 x=4 puis x+=3 7 X,Y="J'aime ","l'école" puis X+Y "J'aime l'école" 3*[1,2,3] [1,2,3,1,2,3,1,2,3] [4,5,6]+[1,2,3] [4,5,6,1,2,3] False+True True False*True False not False+False True 5