Initiation au langage Python Python est un langage de programmation créé par Guido Van Rossum, dont la première version est sortie en 1991. Utilisateurs de Python : Google, YouTube, Mozilla, Microsoft… Logiciel : Python en ligne sur http://python.beharelle.fr/ (Python 2.7, cf. ci-dessous). Il y a deux façons d’utiliser Python : le mode console ou shell le mode éditeur En mode Shell, les commandes sont exécutées ligne par ligne : Python fonctionne comme une calculatrice, on tape une commande et on valide pour exécuter. Le résultat est affiché sous la commande et une nouvelle ligne est créée : commandes et résultats sont affichés dans la même fenêtre. En mode éditeur, les commandes sont tapées dans une fenêtre d’édition et sont ensuite exécutées en bloc. Rien n’est affiché ! Il faut spécifier à Python qu’un résultat doit être transmis à la fenêtre d’affichage grâce à l’instruction print( ). Il y a donc deux fenêtres : la fenêtre de l’éditeur et la fenêtre de sortie. Avantage : simplicité. Inconvénient : les commandes tapées ne sont pas conservées (une erreur ou une insertion nécessite souvent de retaper plusieurs lignes). ⇒ Utilisation : tester une commande (vérifier sa syntaxe, son effet…) Avantage : les commandes peuvent être facilement modifiées, insérées (il faut alors réexécuter) . Inconvénient : nécessité de spécifier print(resultat). ⇒ Utilisation : écrire comportant plusieurs lignes. des scripts (programmes) Remarques importantes : - Testé avec navigateur Firefox sur PC et mobile android (Chrome possible mais affichage un peu moins bon). - En cas de « plantage », rafraîchir la page du navigateur (conseil : copier préalablement le contenu de l’éditeur). - Si rien n’est affiché, la commande est incorrecte (ou print( ) n’a pas été utilisée en mode éditeur). Nous utiliserons plus tard un éditeur beaucoup plus perfectionné (Pyzo) qui permet d’enregistrer les commandes de l’éditeur dans un fichier texte et affiche simultanément l’éditeur, le shell, de l’aide sur les commandes et des messages d’erreur. PCSI – IPT G. Monod Initiation_Python.docx 1/4 Python – Opérations élémentaires – Mode Shell de Python Syntaxe Python Signification Exemples et remarques +,-,*,/ Opérations classiques 2*(5-2) Attention à la version de Python pour la division : - Python 2. : 3/2 ou 3//2 donnent 1 (division entière) → écrire 3.0/2 ou 3./2 ou 3/2. - Python 3. : 3/2 donne 1.5 → la division entière est obtenue par 3//2 ** Puissance 2**5 calcule 25 // Division entière 7//3 calcule le quotient entier de 7÷3 soit 2 % Reste dans la division entière 7%3 calcule le reste dans la division entière de 7÷3 soit 1 == , <= , >= , != Égalité, ≤ , ≥ , ≠ and , or , not Et, ou , négation Tester les commandes suivantes dans le shell, noter les résultats sur cette feuille : Opérations mathématiques et logiques 2**5 2*-5 2**-5 1./2**5 1//2**5 1%2**5 2**5 <= 35 2**5 != 35 2**5 == 32 2*2 == 4 and 4 !=5 Plus loin avec les booléens (True et False) – Attention à la casse (majuscules / minuscules) ! True True + 0 False + 0 True + True True and True false Quelques surprises… 5//3 5./3 1 + 2./3 5./3 == 1 + 2./3 10**50 + 2.5 – 10**50 cos(0) (*) pi (*) ( ) * Voir ci-dessous. Python – Modules / librairies / bibliothèques – Mode éditeur Syntaxe Python Signification Exemples import math Charge en mémoire toutes les fonctions et les constantes du module math. math.tan(0), math.pi from math import sqrt, cos Charge en mémoire uniquement les fonctions et les constantes listées. from math import * Même effet que import math mais dangereux (risque de conflit de noms de fonctions entre plusieurs modules). Possible si un seul module est utilisé (avantage : syntaxe raccourcie). À éviter sinon. tan(0), pi import random as rd Charge le module random et utilise l’alias ‘rd’ au lieu du nom complet ‘random’ (corrige le défaut précédent). rd.randint(0,9) PCSI – IPT G. Monod Initiation_Python.docx 2/4 Tester, dans l’ordre proposé, les commandes suivantes en mode éditeur, noter les résultats sur cette feuille : Module pour le calcul from math import * print(pi) print(cos(pi)) Module pour les nombres aléatoires import random as rd print(rd.randint(0,9)) print(rd.randint(0,9)) print(rd.randint(0,9)) print(rd.random()) Python – Variables : affectation, incrémentation Syntaxe Python a=7 Signification a←7: Mémoire de l’ordinateur a b x a b x a b x on affecte la valeur 7 à la variable a 7 a=8 a←8: on affecte la valeur 8 à la variable a, l’ancienne valeur est écrasée. 8 a=a+1 a ← a+1 : on affecte la valeur a+1 = 8+1 = 9 à la variable a qui est incrémentée (modifiée à partir de sa propre valeur). 9 Instruction fondamentale en informatique Tester, dans l’ordre proposé, les commandes suivantes dans le shell, noter les résultats sur cette feuille : Affectation vs égalité, affectations simultanées, raccourcis a=7 a a == 7 a, b = 1, 2 a a, b a += 4 a Échange de 2 variables a=1 b=2 a=b b=a a, b Comparer et interpréter. a=1 PCSI – IPT G. Monod b=2 a, b = b, a a, b Initiation_Python.docx 3/4 Applications numériques avec Python Effectuer les applications numériques suivantes (dans l’éditeur !) : Équation de Van der Waals Déterminer la valeur de la température de l’air en utilisant l’équation d’état de Van der Walls P + n 2 a V − nb = nRT ( ) 2 V sachant que : P = 105 Pa, n = 1 mol, V = 24,0 10-3 m3, a = 0,1358 usi, b = 3,913 10-5 usi et R = 8,314 JK-1mol-1. Comparer avec le résultat obtenu en assimilant l’air à un gaz parfait. Chaînes de caractères Chaîne de caractère (string) Python sait manipuler des nombres, des booléens mais aussi du « texte » c'est-à-dire des chaînes de caractères (string) entre guillemets simples ou doubles : 'a', "a", "2*a-b/c", "Ceci est du texte" sont des chaînes de caractères (tester dans le shell). De la même façon qu’un nombre ou un booléen, on peut stocker une chaîne dans une variable : s ='azerty' est valide (tester dans le shell, entrer s et valider pour afficher ensuite la chaîne). Conversion nombre → chaîne Pour afficher un résultat par exemple, il peut être intéressant de convertir un nombre en chaîne, cette opération se fait grâce à la fonction str() : str(4) renvoie '4' (tester dans le shell). Opérations sur les chaînes : concaténation L’opération de concaténation (mettre des chaînes « bout à bout ») est réalisée grâce à l’opérateur '+'. Quel est le résultat de : 'O' + 'ui, M' + 'onsieur' (tester dans le shell) ? Quel est le résultat de 'Y' + 5*'e' + 's !' (tester dans le shell) ? Rq : ne pas utiliser de caractères spéciaux dans le navigateur (caractères accentués, apostrophes…), ce problème ne se posera pas avec Pyzo. Commande print( ) Pour améliorer la lisibilité des résultats, on peut par exemple écrire des instructions de la forme : print('T =' + str(T-273) + ' (en degres Celsius) ') (tester dans l'éditeur). PCSI – IPT G. Monod Initiation_Python.docx 4/4