Lycée Brizeux – 2015/2016 T YPES ET VARIABLES Mathématiques – PCSI B C HAPITRE 3 T YPES ET VARIABLES P REMIER CONTACT AVEC P YTHON . Un programme est la traduction d’un algorithme dans un langage « compréhensible » par une machine. . Notre langage de programmation sera Python. . Dans l’immédiat, il s’agit donc de se familiariser avec Python, et les principaux objets qui nous permettront de construire des programmes. 1 Lancement de Python Ouvrez Spyder, qui est l’environnement de développement dont nous allons nous servir pendant l’année. Normalement, à l’ouverture de Spyder, vous avez quelque chose qui ressemble à ça : La partie gauche est l’éditeur de texte : on peut y charger des fichiers (d’extension .py, par exemple), les manipuler et les sauvegarder. La partie en haut à droite regroupe plusieurs onglets « Explorateur de. . . ». Enfin, la partie en bas à droite est la console, et c’est elle qui nous intéresse pour le moment. La série de >>> est une invitation à saisir des commandes : il suffit de saisir à la suite une instruction, puis d’appuyer sur la touche « Entrée » du clavier pour exécuter cette instruction. Pour chacune des instructions suivantes, prédire le résultat affiché par la console, puis taper et exécuter l’instruction pour vérifier. À réaliser dans l’ordre indiqué. Instruction Prédiction Résultat affiché – Commentaires 2-8 3.1 * 5.4 3 ** 4 8/0 1 Lycée Brizeux – 2015/2016 T YPES ET VARIABLES Mathématiques – PCSI B 56+3 56.+3 '56'+'3' '56.' + '3' Remarque. L’écriture scientifique d’un nombre flottant par Python mérite une petite traduction : par exemple, le nombre 6, 022 × 1023 se lit 6.022e23. 2 Variables Le nom des variables Il est assez libre, mais doit respecter quelques règles : — le nom est une séquence de chiffres ou lettres non accentués et sans caractères spéciaux (sauf le underscore), qui commence toujours par une lettre. — la casse est significative ([ie distinction majuscule, minuscules) — les « mots réservés » du langage ne peuvent pas être utilisés (and, def, if, else, return...Il y en a une trentaine) Bon usage : Les noms de variables sont de préférence assez courts, mais aussi explicites que possible, de manière à exprimer clairement ce que la variable est censée contenir. 2.1 Affectation x étant une variable, l’affectation de la valeur 3 à la variable x se code en Python : x=3. Cette instruction ne doit pas être confondue avec la condition (booléenne) x==3. Instruction Prédiction Résultat affiché – Commentaires x = 5 x 4-2*x x=8 4-2*x y = x-2 y (x,y)=(1,2) x y x=y 2 Lycée Brizeux – 2015/2016 T YPES ET VARIABLES Mathématiques – PCSI B y=x x y (x,y)=(y,x) x y x+=3 x x*=2 x 3 Types de données L’essentiel du travail effectué par un ordinateur consiste à manipuler des données. Le type caractérise la nature de l’objet. Instructions permettant d’accéder aux propriétés d’une donnée type(...) permet d’obtenir le type d’une donnée ; dir(...) permet d’obtenir les attributs d’une donnée (ses caractéristiques) et les fonctions que l’on peut utiliser avec celle-ci ; id(...) permet d’obtenir d’obtenir l’adresse mémoire utilisée pour cette donnée ; 3.1 Les nombres Les nombres sont définis en deux types : les entiers (type int pour « integer ») et les flottants (type float). Instruction Prédiction Résultat affiché – Commentaires type(56) type(56.) 17//5 17%5 2**3 3./2 3.//2 3 Lycée Brizeux – 2015/2016 T YPES ET VARIABLES Mathématiques – PCSI B 3//1.1 2**3 2**52 10**-323 10**-324 0.1*3 Remarque. ◦ L’écriture scientifique d’un nombre flottant par Python mérite une petite traduction : par exemple, le nombre 6, 022 × 1023 se lit 6.022e23. ◦ Les opérations faisant intervenir à la fois des données de type int et des données de type float sont envisageables : les entiers sont alors considérés comme des flottants. ◦ L’instruction from math import* permet d’utiliser les fonctions mathématiques usuelles : exp, log (ln), sqrt (p), cos, sin, abs (valeur absolue). On dispose alors aussi de pi (π). Le symbole * signifie que toutes les nouvelles commandes issues du module importé sont désormais accessibles. Instruction Résultat affiché – Commentaires pi from math import* pi sin(pi) 3.2 Les booléens Les booléens peuvent prendre que deux valeurs : True (vrai) ou False (faux). Ils permettent de représenter des résultats d’expressions logiques qui ne peuvent prendre que ces deux valeurs (opérateurs de comparaison par exemple). En Python, leur type est noté bool. Instruction Prédiction Résultat affiché – Commentaires 5>10 5<10 1==1.0 1!=1.0 2<=2 type(5>3) 4 Lycée Brizeux – 2015/2016 T YPES ET VARIABLES Mathématiques – PCSI B a=6 a is 6 Syntaxe des opérations sur les booléens : — non(...) s’écrit : not(...) — ... et ... s’écrit : ... and ... — ... ou ... s’écrit : ... or ... 3.3 Les chaînes de caractères Les chaînes de caractères sont définies par le type str pour « string ». Elles se présentent sous forme de textes délimités par edes guillemets, ou des apostrophes, voire des triplets de guillemets. Instruction Prédiction Résultat affiché – Commentaires type('abc') type("abc") type("""abc""") type('''abc''') s='brizeux' len(s) s[0] s[1] s.upper() 'Lycée'+s 3.4 Conversions int() : convertit une chaîne de caractères contenant un entier en l’entier correspondant ; convertit un flottant en un entier en le tronquant (Attention, ce n’est pas un arrondi à l’entier le plus proche : int(5.8) renvoie 5) ; convertit un booléen en un entier (1 pour True et 0 pour False) float() : convertit une chaîne de caractères contenant un flottant en le flottant correspondant ; convertit un entier en un flottant convertit un booléen en un flottant (1.0 pour True et 0.0 pour False) str() : convertit un entier, un flottant, un booléen en la chaîne de caractères correspondante. Instruction Prédiction Résultat affiché – Commentaires float(56) int('56') 5 Lycée Brizeux – 2015/2016 T YPES ET VARIABLES Mathématiques – PCSI B int(56.7) int(True) int(False) str(325) str(3.25) str(True) Remarque. Il existe de nombreux autres types. On les découvrira au cours de l’année. Le type NoneType ne contient que la valeur None, qui signifie « rien ». Exemple d’utilisation : renvoyer les solutions d’une équation n’ayant pas de solution (par exemple : x 2 + 1 = 0 dans R.) 4 Exercices Exercice 1 Quelle est la différence entre ces quatre programmes ? x=6 y=9 x=2*x+y y=x-y x=6 y=9 y=x-y x=2*x+y x=6 y=9 x,y=2*x+y,x-y x=6 y=9 y,x=x-y,2*x+y Exercice 2 Comparer ces deux programmes avec Python. Que peut-on en conclure ? 1e25 1e25 1e25 1e25 1e25 + + + + - 1000 1000 1000 1000 1e25 + 1e25 1e25 == 0 1e25 == 1000 1000 10**25 + 1000 10**25 + 1000 - 10**25 10**25 + 1000 - 10**25 == 0 Exercice 3 Prévoir le résultat de l’opération suivante, puis vérifier avec Python. ((2 < 1) or (not(2 < 2))) and (not( (2 >= 2) or (-1 > 3))) Exercice 4 Traduire en Python les expressions booléennes suivantes : 1. L’entier n est divisible par 5 2. Les entiers m et n sont tels que l’un est multiple de l’autre 3. Les entiers m et n sont de même signe 4. Les trois entiers m, n et p sont de même signe strict (puis large) 5. n est le plus petit multiple de 7 supérieur à 10100 6. Les trois entiers m, n et p sont distincts deux à deux 6