BCPST2
5 0 0 Aide Mémoire Python
I Instructions de base
A) Opérations élémentaires
Opération Symbole
Addition +
Soustraction -
Multiplication *
Puissance **
Reste de la division euclidienne % Quotient de la division euclidienne //
Divisions sur les ottants / Les fonctions usuelles mathématiques sont dans le package math :
import du package math from math import ∗
B) Tirer au hasard
importer le package random import random
Commande Eet
random.random() Tirer un nombre entre0 et1
random.randint(i,j) Choisir un entier au hasard dansJi, jK random.choice(L) Choisir un élément de la liste L
random.sample(L,n) Choisirnélements d'une liste L sans répétition
C) Intéractions avec l'utilisateur
Intéractions p r i n t( a ) # a f f i c h e a
b = input (' e n t r e r une v a l e u r ') # demande à l ' u t i l i s a t e u r une v a l e u r qui
# s e r a a f f e c t é e à b
D) Quelques astuces
Astuces s += 5 # r a j o u t e 5 à s
s ∗= 2 # m u l t i p l i e s par 2
a , b = b , a #Echange l e s v a l e u r s de a et b
II Listes
A) Créer une liste
â Création par énumération : L =[3 ,7 ,42]
â Création par concaténation
M = A+B # concat é nation d ' une l i s t e A et d ' une l i s t e B L = [ 0 , 1 ]∗5 0 # l i s t e qui r épè te 50 f o i s : 0 , 1
â Utilisation de range :
L = range (50) #0 l i s t e de 50 e n t i e r s de 0 à 49
L = range ( 3 , 1 2 ) # l i s t e des e n t i e r s de 3 à 12 ( exclu )
L = range ( 5 , 1 5 , 3 ) # l i s t e d ' e n t i e r s par pas de 3 , à p a r t i r de 5
# et jusqu ' à 15( e x c l u s ) [ 5 , 8 , 11 , 1 4 ]
â Création par compréhension : L=[i∗∗2 f o r i in range (100) ]
B) Opérations sur les listes
On considère une liste L :
Appel des éléments de L Commande Eet
len(L) longueur de L
L[i] élement d'indice 2 (les indices commencent à 0) L[-1] dernier élément de la liste
L[-2] avant-dernier élément
L[i : j] liste contenant les éléments d'indice i(inclus) à j(exclus) L[i :] liste contenant les élements d'indice i jusqu'à la n L[ : i] liste contenant les élements du début jusqu'à i(exclus)
Opérations sur une liste L
Commande Eet
L.append(v) ajoute un élément valant v à la n de la liste L.extend(s) rajoute à L tous les éléments de la liste s L.insert(i,v) insert l'objet v à l'indice i
L.pop() supprime le dernier élément de la liste
C) Recopier une liste
Remarque:
Si vous avez besoin de faire une copie d'une liste a dans une liste b et de modier celle-ci de façon indépendante de la liste d'origine, une instruction du style b=a ne correspondra pas à ce que vous chercher : en eet toute modication ultérieure sur a sera eectuée également sur b et vice et versa.
Il faut donc procéder ainsi :
Copie de liste b = list ( a )
# oub = a [ : ]
D) Tableau à double entrée ou matrice
Il n'y a pas de structure en python pour les matrices ou tableau à plusieurs entrées. On peut cependant obtenir des objets similaires en créant des listes de listes.
Pour obtenir un achage sous forme de matrice, il faut utiliser le package numpy. Ce package permet d'ailleurs de faire beaucoup de choses sur les matrices.
Création d'une matrice import numpy
M = [ 0 ]∗p f o r i in range ( n ) #matrice de 0 , n l i g n e s et p colonnes M [ i ] [ j ] # Appel de l ' é l ément d ' i n d i c e ( i , j )
p r i n t( numpy . array ( M ) # A f f i c h a g e de matrice
Remarque:
Ne pas oublier qu'en python, la numérotation commence à0. Remarque: Copie d'une matrice
On rencontre la même diculté pour copier une matrice que pour une liste.
copie de matrice def copie_matrice ( a ) :
b= [ ligne [ : ] f o r ligne in a ] return b
ou bien
copie de matrice from copy import deepcopy
b = deepcopy ( a )
III Graphismes de base
Lorsqu'on veut utiliser des fonctions graphiques, commencer par : import du package graphique import matplotlib . pyplot as plt
Remarque:
L'indication as plt est un raccourci pour l'utilisation future des fonctions de matplotlib.
A) Les instructions de bases
Graphique de base graphe = plt . plot ( listX , listY )
plt . show ( )
â La première ligne dénit un graphique où les abscisses des points sont dans listX et les ordonnées dans listY.
On donne ici un nom (graphe) au graphique, c'est facultatif mais peut-être utile pour modier ultérieu- rement son aspect.
â La deuxième ligne permet l'achage du graphique.
B) Modication de l'aspect
Evidemment, il est ensuite possible d'améliorer le graphique :
Pour cela, rajouter des instructions directement au moment de la dénition du graphique : Modication du graphique
graphe = plt . plot ( listX , listY , color = ' red ', linewidth =4) ou bien ultérieurement :
Modication du graphique plt . setp ( graphe , color = ' red ' , linewidth =4)
Propriété Rôle Valeurs possibles
color couleur 'red', 'blue', etc.
label légende de la courbe une chaine de caractère
linestyle type de ligne (pointillés, etc.) '' '-.' ' :'
linewidth épaisseur du trait entier
marker forme des points '+' ',' '.' 'o' '1' '2' '3' '4'
markersize or ms taille des points oat
markevery pour marquer 1 point sur 2, ou 1 sur 3, etc. integer zorder plus il est élevé, plus la gure est 'devant' integer
D) Tracer une fonction
Graphe d'une fonction import numpy
import mathplotlib . pyplot as plt listX = numpy . arange ( debut , fin , pas ) listY = [ f ( x ) f o r x in listX ]
graphe = plt . plot ( listX , listY )
# Rajouter i c i l e formatage du graphe , axes , l é gendes , t i t r e plt . show ( )
IV Méthodes sur les chiers
Commande Eet
f=open(`chier') ouvre `chier' en lecture f=open(`chier','w') ouvre `chier' en écriture
f=open(`chier','a') ouvre `chier' en écriture en écrivant à la suite des données déjà présentes f.read() renvoie le contenu du chier f
f.readline() lit une ligne
f.readlines() renvoie la liste des lignes de f
f.write(s) écrit la chaîne de caractères s dans le chier f
f.close() ferme f
V Élements de base pour la programmation
Remarque:
Il faut faire très attention aux indentations : les instructions doivent être parfaitement indentées car c'est le retour d'indentation qui joue le rôle d'un marqueur de n de la structure.
A) Structure de test
Structure d'un if i f condition1 :
INSTRUCTIONS1 e l i f condition2 :
INSTRUCTIONS2 e l s e :
INSTRUCTIONS3 : Poursuite du programme
Remarque:
â Les tests peuvent s'écrire à partir égalité (==), inégalités ( <, <=, >=, >) , d'appartenance ( in )
â Ils peuvent être composés à l'aide de la négation (not), le et logique (and), ou bien ou logique (or)
â L'évaluation des tests est dite paresseuse :
On doit évaluer a and b : Python évalue a, si celui est faux b ne sera pas évalué puisque de toute façon, a and b est alors faux.
B) Boucle for
Boucle for f o r p in list :
INSTRUCTIONS
Poursuite du programme
Remarque:
â Pour créer une liste d'entiers : range(n) : cette liste contient lesnentiers de0 àn−1
â On peut aussi faire une boucle for avec une autre liste déjà écrite, qui ne contient pas néces- sairement des entiers.
D) Ecrire une fonction
On veut dénir une fonction dont le nom est mafonction, ayant arg1, arg2 et arg3 en arguments d'entrée et sortie1, sortie2 en arguments de sortie.
Dénir une fonction def mafonction ( arg1 , arg2 , arg3 ) :
""" i n d i c a t i o n s qui a p p a r a i t r o n t dans l e s b u l l e s d ' aide """
INSTRUCTIONS
return sortie1 , sortie2
instruction suivante en dehors de la fonction
Remarque:
La n de la fonction est matérialisée en python par le retour de l'indentation.
Pour appeler la fonction avec a,b,c en entrée et récupérer les 2 sorties dans des variables sort1 et sort2.
( sort1 , sort2 ) = mafonction ( a , b , c )
Remarque:
Toutes les listes mises en argument d'entrée et qui sont modiées dans la fonction seront automa- tiquement modiées, il est inutile de les mettre comme arguments de sortie.