page1
Mémento Python 3 pour le calcul scientifique
Cette version sur l'E.N.T. Arts et Métiers :
https://savoir.ensam.eu/moodle/course/view.php?id=1428
a…zA…Z_ suivi de a…zA…Z_0…9
◽ accents possibles mais à éviter
◽ mots clés du langage interdits
◽ distinction casse min/MAJ
 a toto x7 y_max BigOne
 8y and for
Noms d’objets, de fonctions,
de modules, de classes, etc.
Identificateurs
Types de base
True
False
bool
9.23
-1.7e-6
0.0
float
( -1,7×10-6 )
Entier, décimal, complexe,
booléen, rien
☝ objets non mutables
0
783
-192
int
0b010
0xF3
0o642
binaire
octal
hexadécimal
zéro
complex
1j
2+3j 1.3-3.5e2j
0j
None (une seule valeur : « rien »)
NoneType
x = 1.2 + 8 + sin(y)
u,v,w = 1j,"a",None
Affectations multiples
a,b = b,a
échange de valeurs
☝ affectation ⇔ association d'un nom à un objet
del x
Affectation/nommage
Symbole : =
1) évaluation de l'expression de droite pour créer un objet
2) nommage de l’objet créé
nom_objet = <expression>
<n noms> = <itérable de taille n>
Affectations combinée avec une opération 
x = c
équivaut à :
x = xc
Suppression d'un nom
l'objet associé disparaît seulement s'il n'a plus
de nom, par le mécanisme du « ramasse-miettes »
Objets itérables
list
[1,5,9]
["x",-1j,["a",False]]
["abc"]
[]
◾ Conteneurs numérotés (listes, tuples, chaînes de caractères)
◾ Itérateurs (objets destinés à être parcourus par in)
☝ expression juste avec des virgules → tuple
Objets non mutables
tuple
11,"y",[2-1j,True]
()
(1,5,9)
("abc",)
str
""
"abc"
"z"
Conteneurs hétérogènes
Objet vide
Singleton
len(objet) donne :
3
1
0
3
range(n) : pour parcourir les n premiers entiers naturels, de 0 à n-1 inclus.
range(n,m) : pour parcourir les entiers naturels de n inclus à m exclu par pas de 1.
range(n,m,p) : pour parcourir les entiers naturels de n inclus à m exclu par pas de p.
reversed(itérable) : pour parcourir un objet itérable à l'envers.
enumerate(itérable) : pour parcourir un objet itérable en ayant accès à la numérotation.
zip(itérable1,itérable2,…) : pour parcourir en parallèle plusieurs objets itérables.
Nombre d'éléments
Parcours de conteneurs numérotés
L[1] → 20
L[-2] → 60
 Accès à chaque élément par L[index]
 Accès à une partie par
L[début inclus:fin exclue:pas]
L[:] tous : copie superficielle du conteneur
L[-1] → 70
L[0] → 10
⇒ le dernier
⇒ le premier
Sur les listes (conteneurs mutables), suppression d'un élément ou d'une partie par del, et remplacement par =
☝ index à partir de 0
⇒ l'avant-dernier
⇒ le deuxième
L[2:5]→ [30,40,50]
L[:4] → [10,20,30,40]
⇒ indices 2,3 et 4
⇒ le deuxième
⇒ les 4 premiers
L[-4:]→ [40,50,60,70]
⇒ les 4 derniers
L[::2]→ [10,30,50,70]
⇒ de 2 en 2
L[::-1] tous, de droite à gauche
L[-2::-3]→ [60,30]
⇒ de -3 en -3 en partant de
l'avant-dernier
del L[4] effet sur la liste L similaire à L.pop(4)
L[4] = 99
del L[1::2] suppression des éléments d'indices impairs
L[1::2] = "abc" itérable ayant le même nombre
d'éléments que la partie à remplacer, sauf si le pas vaut 1
→ L devient [10,20,30,40,99,60,70]
L[1:-1] = range(2)
→ L devient [10,20,30,40,60,70]
→ L devient [10,30,50,70]
→ L devient [10,"a",30,"b",50,"c",70]
→ L devient [10,0,1,70]
Conteneurs : opérations génériques
len(c) min(c) max(c) sum(c)
nom in c → booléen, test de présence dans c
d'un élément identique (comparaison ==) à nom
nom not in c → booléen, test d'absence
c1 + c2 → concaténation
c * 5 → 5 répétitions (c+c+c+c+c)
c.index(nom)→ position du premier élément
identique à nom
c.index(nom,idx)→ position du premier
élément identique à nom à partir de la position idx
c.count(nom)→ nombre d'occurrences
☝ modification « en place » de la liste L originale
ces méthodes ne renvoient rien en général
L.append(nom) ajout d'un élément à la fin
L.extend(itérable) ajout d'un itérable converti
en liste à la fin
L.insert(idx,nom) insertion d'un élément à
la position idx
L.remove(nom) suppression du premier élément
identique (comparaison ==) à nom
L.pop() renvoie et supprime le dernier élément
L.pop(idx) renvoie et supprime l'élément à
la position idx
L.sort() ordonne la liste (ordre croissant)
L.sort(reverse=True) ordonne la liste
par ordre décroissant
L.reverse() renversement de la liste
L.clear() vide la liste
Opérations sur listes
Aide
dir(nom) liste des noms des méthodes
et attributs de nom
help(nom) aide sur l'objet nom
help("nom_module.nom") aide sur l'objet
nom du module nom_module
F1
Formatage
Chaînes de caractères
Caractères spéciaux : "\n" retour à la ligne
"\t" tabulation
"\\" « backslash \ »
"\"" ou '"' guillemet "
"'" ou '\''apostrophe '
Exemple :
ch = "X\tY\tZ\n1\t2\t3"
print(ch) affiche : X Y Z
1 2 3
print(repr(ch)) affiche :
'X\tY\tZ\n1\t2\t3'
Méthodes sur les chaînes
☝ Une chaîne n'est pas modifiable ; ces méthodes renvoient en général une nouvelle chaîne ou un autre objet
r"dossier\sd\nom.py" → 'dossier\\sd\\nom.py'
Le préfixe r signifie ``raw string'' (tous les caractères sont considérés comme de vrais caractères)
"nomfic.txt".replace(".txt",".png") → 'nomfic.png'
"b-a-ba".replace("a","eu") → 'b-eu-beu' remplacement de toutes les occurrences
" \tUne phrase.\n ".strip() → 'Une phrase.' nettoyage début et fin
"des mots\tespacés".split() → ['des','mots','espacés']
"1.2,4e-2,-8.2,2.3".split(",") → ['1.2','4e-2','-8.2','2.3']
" ; ".join(["1.2","4e-2","-8.2","2.3"]) → '1.2 ; 4e-2 ; -8.2 ; 2.3'
ch.lower() minuscules, ch.upper() majuscules, ch.title(), ch.swapcase()
Recherche de position : find similaire à index mais renvoie -1 en cas d'absence, au lieu de soulever une erreur
"image.png".endswith(".txt") → False
"essai001.txt".startswith("essai") → True
"{} ~ {}".format("pi",3.14) → 'pi ~ 3.14' ordre et formats par défaut
"{1:} -> {0:}{1:}".format(3,"B") → 'B -> 3B' ordre, répétition
"essai_{:04d}.txt".format(12) → 'essai_0012.txt' entier, 4 chiffres, complété par des 0
"L : {:.3f} m".format(0.01) → 'L : 0.010 m' décimal, 3 chiffres après la virgule
"m : {:.2e} kg".format(0.012) → 'm : 1.20e-02 kg' scientifique, 2 chiffres après la virgule
La méthode format sur une chaîne contenant "{<numéro>:<format>}" (accolades)
Page 1 / 5
©2019 – Éric Ducasse & Jean-Luc Charles Version AM-1.5
Licence Creative Commons Paternité 4
Forme inspirée initialement du mémento de Laurent Pointal,
disponible ici : https://perso.limsi.fr/pointal/python:memento