Memento Python
Memento Python
Memento Python
I- Variables et valeurs
En programmation, les variables peuvent posséder des types différents : entier (integer), nombre
décimal (float), chaînes de caractères (string), liste (list), tableau (array), etc…
Ces types sont automatiquement affectés en fonction de leur valeur.
Par exemple, l'instruction x = 4 affecte la valeur de type 'entier' (integer) à la variable x.
Inutile pour nous de déclarer le type.
NB : Par convention, le nom d'une variable doit commencer par une minuscule et ne contenir aucun
caractère spécial ni accentué. Seul le tiret-bas _ est autorisé.
L’explorateur de variables permet de suivre le type de la variable ainsi que sa valeur. C’est pratique !!
1/10
II- Opérateurs et comparateurs usuels
A) Les opérateurs usuels
La plupart des opérateurs mathématiques courants (+, -, * et /) sont disponibles sous Python. Par convention,
on met un espace avant et après chaque opérateur.
Un calcul impliquant des nombres décimaux (« flottants ») donne obligatoirement une valeur de type float
en sortie de calcul, même lorsque le résultat est entier .
L'instruction round(x,n) permet d'arrondir une valeur x à n décimales.
La plupart des comparateurs mathématiques usuels sont disponibles en Python. Leur exécution renvoie
toujours un booléen (True ou False) lors du test.
Opérateurs Explications et exemples
>, >=, <, <= Supérieur à, supérieur ou égal à, inférieur à, inférieur ou égal à.
La double égalité permet de tester l'égalité entre les valeurs et les types de 2
variables (le signe = simple étant déjà réservé à l'affectation). Une tolérance
== s'applique sur la comparaison entre un entier et un flottant.
2 == 2 renvoie True
[4, 5, 6] == "4, 5, 6" renvoie False
1.0 == 1 renvoie True
NB : Dans la mesure du possible, on évitera d'associer flottants et comparateurs !!
Opérateur de différence. Compare les variables et renvoie True si la valeur ou le type
!= sont différents. Une tolérance s'applique entre un entier et un flottant.
[4, 5, 6] != [4, 5, 6] renvoie False
"bonjour" != "aurevoir" renvoie True
4 == 4.0
2/10
III- Quelques instructions utiles
Il existe plusieurs fonctions, méthodes et instructions particulièrement utiles pour l'exploitation de
Python en Physique, et présentes de façon native (sans appel de bibliothèque).
Python dispose de nombreux outils permettant de réaliser certaines opérations fréquentes rapidement :
la méthode .pop(n) qui enlève l'élément d'indice n
la méthode .append(x) qui ajoute x en fin de liste
les instructions sum, min et max qui portent bien leur nom
l'instruction len qui permet de récupérer la taille de la liste.
La technique de slicing L[a:b] permet de récupérer tous les éléments d'une liste de l'indice a à l'indice b-1.
Exemples Explications
len : renvoie le nombre d'éléments d'une liste ou d'une chaine de caractères.
len(L) / len(mot)
max : renvoie le maximum d'une liste
max(L)
min : renvoie le minimum d'une liste
min(L)
sum : renvoie la somme des éléments d'une liste
sum(L)
Pour la liste [1,3,5,7], len(L) renvoie 4, sum(L) renvoie 16 etc.
Méthode de slicing (renvoyant une séquence allant de l'indice (a) à l'indice (b-1)
d'une liste ou d'une chaine de caractères. Si rien n'est indiqué avant le signe : , le
découpage commence au début. Si rien n'est indiqué après le signe :, le
découpage va jusqu'à la fin.
L[a:b]
Pour la liste L=[2, 4, 6, 8, 10]
mot[a:b]
L’instruction L[2:4] renvoie [6, 8]
L[:3] renvoie [2, 4, 6]
L[2:] renvoie [6, 8, 10]
L[n] = x Réaffecte la valeur x à la nième valeur de la liste L.
L.append(x) Ajoute l'élément x en dernière position de la liste L.
Enlève l'élément de la liste L situé à l'indice n (et le renvoie, de sorte qu'il puisse
L.pop(n)
être réaffecté si besoin).
3/10
Partie B : Quelques structures fondamentales
IV- La structure de test : if… elif… else
Derrière les mots clefs if et elif, la condition est nécessairement un booléen : on rentre alors dans le
bloc d'instructions (qui doit être indenté de 4 espaces, soit 1 tabulation) si et seulement si le booléen est
True. Dans le cas contraire, le script passe au test suivant.
Si la condition1 est vraie, alors le bloc d'instructions1 est exécuté et on sort du test lorsque
l'indentation se termine (les lignes elif et else ne sont alors pas traitées).
Si la condition1 est fausse, le script passe au test elif condition2 : à nouveau, le bloc indenté n'est
traité que si la condition2 est vraie puis le test se termine.
x = 4
if x > 0 :
print("x positif")
elif x < 0 :
print("x négatif")
else :
print("x nul")
Y=[]
t=0
4/10
for i in range(0,11):
y = 2*t
Y.append(round(y,2))
t = t + 0.10
print(Y)
Exemples Explication
c=1 Le compteur, ici appelé c, est initialisé avant la
while c <= 10 : boucle. La boucle while est exécutée tant qu'une
print("Itération numéro",c) condition est vérifiée : ici tant que c ≤ 10.
c=c+1 A chaque itération, les instructions sont exécutées et
print ("Sortie de boucle : c vaut",c) le compteur c est incrémenté de 1.
Quand c atteint 11, la condition d'arrêt n'est plus
vérifiée et la boucle s'interrompt.
i=9 Dans ce cas, le compteur i vaut initialement 9 puis il
while i != 0 : est décrémenté de 2 à chaque itération (i vaudra
print("i vaut", i) donc 9, 7, 5, 3, 1, -1, -3, -5…)
i=i–2 La condition d'arrêt est mal posée car i est toujours
print("Ne sera jamais exécuté !") différent de 0 : la boucle est donc infinie.
Une fois le script lancé, le seul moyen de
l'interrompre est d'interrompre le script (carré
rouge ou raccourci CTRL+C)
5/10
VII- Les fonctions
A) Définir une fonction :
En programmation, on utile des fonctions pour regrouper un ensemble d'instructions en une seule. On peut
ainsi imaginer les fonctions comme des objets dont l'exécution va provoquer l'exécution d'un ensemble
d'autres instructions qui auront été définies auparavant.
Pratiquer cette modularité dans un script permet de gagner en lisibilité, de gagner du temps lors du
débogage mais aussi de réutiliser simplement et rapidement des suites d'instructions.
Prenons immédiatement un exemple pour illustrer l'écriture d'une fonction :
6/10
Partie C : Les bibliothèques scientifiques
Les bibliothèques sont des ensembles de scripts (que nous appellerons modules) rédigés par un tiers,
mettant à disposition de nouveaux outils qui n'étaient pas présents. Par exemple, la bibliothèque math
mettra à disposition un outil « sqrt » qui permettra de calculer en une instruction la racine carrée d'un
nombre. Le nombre de bibliothèques et de modules disponibles en Python est colossal et permet de faire
à peu près tout ce qu'il est possible d'imaginer : tracer, gérer des documents html, des bases de données,
représenter des séries de valeur, faire du calcul formel, faire du traitement de l'image, etc.
Nous ne nous intéresserons ici qu'aux modules ayant un intérêt dans le cadre d'un enseignement de
Physique- Chimie au lycée et à certaines de leurs "fonctionnalités".
Pour pouvoir utiliser les objets mis à disposition par une bibliothèque, il est tout d'abord nécessaire de
l'importer. Cette importation peut se faire de différentes manières.
Solution 1 : Effectuer l’instruction import.
Pour exemple la bibliothèque math, contenant une fonction sqrt() permettant de calculer la
racine carrée d'un nombre est importée par l’instruction import math placée en début de script.
Toutes les fonctions, tous les modules et toutes les constantes de la bibliothèque math sont alors
importés. Toutefois, il sera nécessaire de préciser à chaque fois qu'une fonction est utilisée que
celle- ci se trouve dans la bibliothèque importée.
Ainsi, il faudra entrer l'instruction math.sqrt(25) pour pouvoir récupérer la valeur 5.0
Solution 2 : Effectuer l’instruction from math import *, qui permet d’appeler la bibliothèque une
fois pour toutes, sans nécessairement préciser le nom de la bibliothèque devant les fonctions qu’on
appelle (Mise en garde : il existe des fonctions intégrées dans 2 bibliothèques qui n’ont pas toutes à
fait les mêmes propriétés, risque de conflit)
Si le nom de la bibliothèque est trop long, il est possible d’utiliser un alias, c’est-à-dire une forme contractée
du nom qui viendra la remplacer lorsque vous y ferez appel.
IX - La bibliothèque numpy
La bibliothèque numpy est une bibliothèque permettant un traitement numérique rapide et efficace des
données scientifiques. Elle donne accès à de nouveaux types de tableaux (multidimensionnels),
notamment le type array, pratiques pour la gestion de vecteurs, le calcul matriciel et le travail sur les
polynômes. Elle permet également la gestion de routines de haut niveau (fonctions spéciales, outils
statistiques, algèbre linéaire, etc.).
List ou Array ?
La majorité des situations rencontrées au lycée peut être gérée avec des variables de type list, toutefois
le type array peut se révéler très utile dans certaines situations :
Pour construire rapidement un tableau de valeurs réparties uniformément (temps ou positions).
Pour trouver rapidement les zéros d'un polynôme ou modéliser une courbe.
Pour réaliser des opérations simples et rapides avec les vecteurs (somme vectorielle par
exemple).
Un choix pédagogique est ici à faire entre :
- Se limiter à utiliser le type list : ayant pour avantage d'être également utilisé en math et en
SNT et généralement assez bien compris des élèves, mais alourdissant grandement certains
calculs portant sur des tableaux de valeurs.
- Se lancer dans l'utilisation du type array : ayant pour avantage de faire gagner beaucoup de temps
et de lisibilité (et incontournable en prépa/IUT), mais ajoutant une difficulté syntaxique
supplémentaire.
7/10
Conclusion : Cette bibliothèque n’est pas abordée dans les programmes de maths et de SNT (donc petite
perte de temps pour l’introduire) mais elle facilite grandement la manipulation des tableaux
Instructions Explication
import numpy as np Permet d'importer la bibliothèque numpy et d'utiliser l'alias np
Permet de construire un tableau T de type array en le définissant ligne
T = np.array([[a1, a2], [b1, b2], par ligne :
[c1, c2]])
8/10
X- La bibliothèque math
La bibliothèque math est utilisée pour avoir accès aux fonctions et constantes mathématiques élémentaires
(racine carré, fonction gamma, exponentielle, logarithme, constante pi, fonctions trigonométriques,
conversion degré/radians, etc.).
La plupart de ces fonctions est également présente dans la bibliothèque numpy (voir paragraphe suivant)
Instructions Explication
import math Permet d'importer et d'utiliser les objets de la bibliothèque math
math.sin(x) Permet d'utiliser les fonctions trigonométriques cosinus, sinus,
math.cos(x) tangente, arc sinus, arc cosinus et arc tangente.
math.tan(x)
math.asin(y) Attention, les valeurs de x pour les fonctions sinus, tangente et cosinus sont
math.acos(y) nécessairement en radians.
math.atan(y)
math.exp(x) Permet d'obtenir l'exponentielle de :
math.log(x, n) Permet d'obtenir le logarithme de x en base . Par défaut math.log(x) est
en base .
math.log10(x) Permet d'obtenir les logarithmes en base 10 ou 2 de (plus précis).
math.log2(x)
Math.e Permet d’utiliser les constantes et
math.pi
9/10
XI - La bibliothèque matplotlib
La bibliothèque matplotlib est utile pour la représentation, en 2D ou 3D, de fonctions mathématiques
avancées ou d'ensembles de valeurs numériques. Elle possède de nombreux modules mais celui qui nous
intéresse dans le cadre d'un enseignement au lycée est pyplot.
Instructions Explication
import matplotlib.pyplot as plt Permet d'importer la bibliothèque pyplot et d'utiliser son alias plt
Trace la courbe = ( ). Paramètres optionnels :
color : "black", "red", "blue", … modifie la couleur du tracé
linewidth : "1", "2", "3" … modifie l'épaisseur du tracé linestyle
plt.plot(x, y) :"-", "--", ":", "." modifie l'apparence du tracé
marker : "+", "x", ".", "o", "v" modifie la forme des points
marqués label : "courbe"1", "courbe2", … indique une légende
pour chaque courbe. L'instruction plt.legend() doit figurer
dans le script.
Remarque : Il est possible de condenser les paramètres :
plt.plot(x, y, "b:x") permet d'obtenir une ligne pointillée bleue
avec des points en croix
plt.show() Affiche les courbes mises en mémoire avec plt.plot(). Si plusieurs
courbes étaient en traitement, elles sont superposées.
plt.grid() Rend visible le quadrillage sur la figure
plt.legend() Permet d'afficher les labels en légende lorsqu'ils ont été indiqués
en paramètre label dans plt.plot()
plt.xlabel("votre texte", fontsize=12) Affiche le "texte" en abscisse ou en ordonnée et précise sa taille.
plt.ylabel("votre texte", fontsize=12)
plt.title("texte", fontsize=12) Affiche "texte" comme titre de courbe et indique sa taille
Limite l'affichage en abscisse sur [ 0, 1] et en ordonnées sur
plt.axis([x0, x1, y0, y1]) [ 0, 1] plt.axis("tight") permet de gérer le cadrage
automatiquement plt.axis("equal") permet d'obtenir un repère
orthonormé.
plt.xlim(a,b) Remplace l'instruction plt.axis() en indiquant l'intervalle [ , ]
plt.ylim(a,b) utilisé pour le tracé en abscisses ou en ordonnées.
plt.text(x, y, "texte") Permet d'afficher un texte sur la figure à la position (x, y)
plt.savefig("name") Permet de sauvegarder la figure obtenue sous le nom "name".
Trace une flèche ayant comme point de départ (x, y) et allant
jusqu'au point (x+dx, y+dy).
plt.arrow(x, y, dx, dy) Paramètres optionnels (mais indispensables en méca…) :
color : "black", "red", "blue", etc.
head_length : longueur de la tête de flèche, par défaut 0.0045
head_width : épaisseur de la tête de flèche, par défaut 0.003$
10/10