Initiation à la programmation Python

Python Programming · notes

Browse all programmation documents

Les modules

2. Chargement des modules externes

from math import sin,cos

import math

import math as m

Syntaxe Description
from module import * Charger la totalité du module. Cette
instruction charge le module, l’éxécute et
place toutes les fonctions du module (et
variables)
dans
l’espace
de
noms
courant
from module import
fonctionsaimporter
Charger
que
certaines
fonctions
du
module
import module On importe le module. En revanche les
fonctions ne sont plus placées dans
l’espace de noms courants mais dans un
espace propre. Pour y accéder, il faut
préciser qu’on utilise la fonction dans cet
espace de noms
import
module
as
nom_alias
Faciliter l’utilisation en précisant un alias
pour cet espace de noms

from puissance import carre

a = 5 u = carre(a) print("le carre vaut", u)

import puissance help(puissance) Help on module puissance: NAME

puissance - Un module pour afficher la puissance des nombres

FUNCTIONS

carre(valeur) cube(valeur) FILE

d:\cours python\puissance.py

init_.py

Test.py

from package1 import puissance,operations n1=int(input("donner une valeur 1 : ")) n2=int(input("donner une valeur 2 :")) r1=puissance.carre(n1) print("le carré est :",r1) r2= operations.multi(n1,n2)) print("la multiplication de ",n1," par",n2," est:",r2)

Les contrôles les plus utilisés :

Widget Description
Label Un widget utilisé pour afficher du texte à l'écran
Entry Un widget de saisie de texte qui n'autorise qu'une seule ligne de texte
Text Un widget de saisie de texte qui permet la saisie de texte multiligne
Checkbutton est utilisé pour afficher un certain nombre d’options sous forme de cases à
cocher. L’utilisateur peut sélectionner plusieurs options à la fois.
Radiobutton est utilisé pour afficher un certain nombre d’options sous forme de boutons
radio. L’utilisateur ne peut sélectionner qu’une seule option à la fois.
Listbox est utilisé pour fournir une liste d’options à un utilisateur.
Combobox liste avec une barre de défilement incluse
Button Un bouton qui peut contenir du texte et peut effectuer une action lorsque
vous cliquez dessus
Frame Une région rectangulaire utilisée pour regrouper les widgets associés ou
fournir un remplissage entre les widgets
Canvas est une zone rectangulaire destinée à contenir des dessins ou d’autres figures
complexes.

2.2 Le contrôle zone de saisie

Une zone de saisie a pour but de recevoir une information entrée par l’utilisateur. Une zone de saisie correspond à la classe Entry ; la syntaxe est la suivante :

Advertisement

saisie = tkinter.Entry ()

Col1 Pour modifier le contenu de la zone de saisie, il
faut utiliser la méthode insert qui insère un texte
à une position donnée.
saisie.insert (pos, "contenu")
Pour obtenir le contenu de la zone de saisie contenu = saisie.get ()
Pour supprimer le contenu de la zone de saisie
entre deux positions
saisie.delete (pos1, pos2)
Exemple :
saisie.delete (0, len(saisie.get()))

17

2.3 Le contrôle zone de saisie à plusieurs lignes

saisie = tkinter.Text()

Pour modifier le contenu de la zone de saisie, on utilise
insert qui insère un texte à une position donnée.
pos = "0.0"
saisie.insert(pos,"première ligne\n
seconde ligne")
Pour obtenir le contenu de la zone de saisie, il faut utiliser la
méthode get qui retourne le texte entre deux positions. La
position de fin n’est pas connue, on utilise la chaîne de
caractères "end" pour désigner la fin de la zone de saisie.
pos1 = "0.0"
pos2 = "end" #ou tkinter.END
contenu = saisie.get (pos1, pos2)
Pour supprimer le contenu de la zone de saisie entre deux
positions
saisie.delete (pos1, pos2)
Exemple :
saisie.delete(0, len(saisie.get()))
Pour modifier les dimensions de la zone de saisie à plusieurs
lignes
saisie.config(width,height)
# width <--> largeur
# height <--> hauteur en lignes
Exemple:
saisie.config (width = 10,height = 5)

Le widget Checkbutton est utilisé pour afficher un certain nombre d’options à un

case = Checkbutton ( master, option = value, ... )

Où: master : Cela représente la fenêtre parent. option : Voir ci-dessous la liste des options les plus utilisées

Tableau de quelques options pour le widget Checkbutton

Option Description
bd Largeur de bordure en pixels. La valeur par défaut est 2.
bg Couleur de fond normale.
fg Couleur normale du premier plan (texte).
font Police de texte à utiliser pour l’étiquette du Checkbutton.
height Hauteur du Checkbutton selon les lignes de texte.
justify •LEFT pour justifier le texte à gauche de chaque ligne;
•CENTER pour centrer le texte;
•RIGHT pour justifier le texte à droite.
width Largeur du bouton en lettres (si du texte) ou en pixels (si une image).

2.5 Le contrôle bouton radio

Le Radiobutton est un widget Tkinter standard utilisé pour implémenter un bouton à choix multiples. 20

La syntaxe est la suivante :

btn = Radiobutton ( master, option = value, ... )

Où: master : Cela représente la fenêtre parent. option : Voir ci-dessous la liste des options les plus utilisées

Tableau de quelques options pour le widget Checkbutton

Option Description
bd Largeur de bordure en pixels. La valeur par défaut est 2.
bg Couleur de fond normale.
fg Couleur normale du premier plan (texte).
font Police de texte à utiliser pour l’étiquette du radiobutton.
height Le nombre de lignes de texte (pas de pixels) sur le bouton radio. La valeur par défaut est 1.
justify •LEFT pour justifier le texte à gauche de chaque ligne;
•CENTER pour centrer le texte;
•RIGHT pour justifier le texte à droite.
width Largeur du bouton en lettres (si du texte) ou en pixels (si une image).
value Lorsqu’un bouton radio est activé par l’utilisateur, sa variable de contrôle est définie sur sa valeur
actuelle. Si la variable de contrôle est un StringVar, on donne à chaque bouton radio du groupe
une valeur de type String. Si la variable de contrôle est un IntVar, on donne à chaque radiobutton
une valeur entière.

Avant sélection d’un choix

Après sélection d’un choix

2.6 Le contrôle liste

22 Le widget Listbox est utilisé pour afficher une liste d’éléments à partir de laquelle un utilisateur peut sélectionner un certain nombre d’éléments.

La syntaxe est la suivante :

Advertisement

liste = Listbox ( master, option = value, ... )

Où: master : Cela représente la fenêtre parent.

Tableau de quelques options

option : Voir ci-dessous la liste des options les plus utilisées

Option Description
bd Largeur de bordure en pixels. La valeur par défaut est 2.
bg Couleur de fond normale.
fg Couleur normale du premier plan (texte).
font Police de texte à utiliser pour la liste.
height Nombre de lignes (pas de pixels!) Affichées dans la zone de liste. La valeur par défaut est 10.
width La largeur du widget en caractères. La valeur par défaut est 20.

Détermine le nombre d’éléments pouvant être sélectionnés et la manière dont les éléments sont sélectionnés:

  • BROWSE: on peut sélectionner qu’une seule ligne dans la liste. Si on clique sur un élément, puis on fait glisser vers une autre ligne, la sélection suivra la souris. C’est la valeur par défaut.

  • SINGLE: on peut sélectionner qu’une seule ligne et on ne peut pas faire glisser la souris.

  • MULTIPLE :on peut sélectionner n’importe quel nombre de lignes à la fois. Le clic sur une ligne permet de choisir si elle est sélectionnée ou non.

  • EXTENDED: on peut sélectionner n’importe quel groupe de lignes adjacentes à la fois en cliquant sur la première ligne et en faisant glisser jusqu’à la dernière ligne.

23 Voici les méthodes les plus utilisées pour ce widget:

Méthode Description
activate(index) Sélectionne la ligne spécifiée par l’index donné.
curselection() Renvoie un tuple contenant les numéros de ligne du ou des éléments sélectionnés, en
comptant à partir de 0. Si rien n’est sélectionné, retourne un tuple vide.
delete(first, last=None) Supprime les lignes dont les indices sont dans la plage . Si le deuxième
argument est omis, la ligne avec l’index first est supprimée.
get(first, last=None) Renvoie un tuple contenant le texte des lignes dont les indices sont dans la plage , last est inclus. Si le deuxième argument est omis, retourne le texte de la ligne la
plus proche du premier.
index(i) Positionne la partie visible de la liste de sorte que la ligne contenant l’index i soit en
haut du widget.
insert(index, *elements) Insérez une ou plusieurs nouvelles lignes dans la liste avant la ligne spécifiée par
index. Utilisez END comme premier argument si vous souhaitez ajouter de nouvelles
lignes à la fin de la liste.
nearest(y) Renvoie l’index de la ligne visible la plus proche de la coordonnée y.
see(index) Ajustez la position de la liste afin que la ligne référencée par l’index soit visible.
size() Renvoie le nombre de lignes dans la liste.

Blue Red Green Yellow Orange Black

26

2.8 Le contrôle bouton

Voici la syntaxe pour créer ce widget : btn = Button ( master, option = value, ... )

Où: master : Cela représente la fenêtre parent.

option : Voir ci-dessous la liste des options les plus utilisées

Méthode Description
bd Largeur de bordure en pixels. La valeur par défaut est 2.
bg Couleur de fond normale.
command Fonction ou méthode à appeler lorsqu’on clique sur le bouton.
fg Couleur normale du premier plan (texte).
font Police de texte à utiliser pour l’étiquette du bouton.
height Hauteur du bouton selon les lignes de texte (pour les boutons textuels) ou en pixels (pour les
images).
highlightcolor La couleur du focus lorsque le widget a le focus.
image Image à afficher sur le bouton (au lieu du texte).
justify •LEFT pour justifier le texte à gauche de chaque ligne;
•CENTER pour centrer le texte;
•RIGHT pour justifier le texte à droite.
state Définissez cette option sur DISABLED pour griser le bouton et le désactiver. La
valeur ACTIVE lorsque la souris est dessus. La valeur par défaut est NORMAL.
width Largeur du bouton selon les lettres (si du texte) ou en pixels (si une image).

Au clic sur « cliquez ici! »

Motif géométrique Item Tkinter
segment de droite, flèche create_line
rectangle carré create_rectangle
cercle ellipse create_oval
texte create_text
image png, gif create_image
polygone create_polygon
arcs de cercle, d’ellipse create_arc

Les objets sont empilés à l’aide de la méthode pack les uns en dessous des autres

Advertisement

w.bind(evt, fonction)

  1. Créer un tableau
Col1 Fonction Rôle Exemple
array(object, dtype, …) Créer un tableau numpy import numpy asnp
a= np.array([1, 2, 5, 3])
mat = np.array([ [3.2, 7, 9], [4, 8.75, 0] ])
zeros(shape, dtype, …) Retourne un nouveau tableau
rempli de zéros. Le type de
données par défaut est
numpy.float64
v = np.zeros(5)
print(v)
m = np.zeros(shape=(3,3), dtype=int)
m= np.zeros((3,3), int)
ones(shape, dtype, …) Retourne un nouveau tableau
rempli de nombre à virgule
flottante de valeur 1
m = np.ones(shape=(3,5))
np.ones(shape=(3,5), dtype=int)
[[1 1 1 1 1]
[1 1 1 1 1]
[1 1 1 1 1]]
full(shape, full_value, …) Retourne un nouveau tableau
rempli avec la valeur donnée.
# Un tableau 4*2 rempli de la valeur 3.14
np.full((4,2),3.14)
identity( n, dtype =
Aucun )
Retourne un tableau
d'identité. Avec n Nombre de
lignes et dtype le type de
données de la sortie. La
Retourne un tableau
d'identité. Avec n Nombre de
lignes et dtype le type de
données de la sortie. La

valeur par défaut est float.

44

45

Fonction Rôle Exemple
arange(debut, fin, pas, …)
génère un tableau à une dimension
formé d’entiers ou de flottants
(Contrairement à la fonction range),
commençant à debut, et finissant à
fin (valeur exclue), avec un pas.

La taille de « step » par défaut est 1.
np.arange(start=1, stop=10)
np.arange(0, 20, 2).reshape(2,5)
linspace(debut, fin, num, …) Renvoie des nombres régulièrement
espacés sur un intervalle spécifié.
np.linspace(start=0, stop=10,num=5)
random.randint(low, high, size, …) Renvoie des entiers aléatoires dans
[low, high[.
Si high est nul, alors les résultats
proviennent de [0, low[.
np.random.randint(10,100,5)
np.random.randint(10, size=(2,2))
random.uniform(low, high, size,
…)
Retourne des réels aléatoires dans [low,
high[.
np.random.uniform(2, 5, size=3)
random.random(size) Retourne des réels aléatoires dans [0.0,
np.random.random(2)
1.0[ 1.0[
  1. Caractéristiques d’un tableau

Exemple:

Fonction/Attribut Rôle
Type(tableau) Retourne le type de la structure
tableau.dtype Retourne le type d’éléments du
tableau
tableau.ndim Retourne le nombre des
dimensions du tableau
tableau.size Retourne le nombre d’éléments
du tableau
tableau.shape Retourne le nombre des lignes
et des colonnes du tableau

n

  • Pour les vecteurs, accéder à un élément d'indice i en utilisant la syntaxe:

tableau[ i ]

  • Pour les matrices, accéder à l’élément d’indice i,j en utilisant la syntaxe :

tableau [ i, j ] ou tableau [ i ] [ j ]

  • Pour accéder aux éléments d’un tableau en utilisant la syntaxe:

tableau[ lower : upper : step ] ; ) # 1 print(m[-1,-1]) #16 n=m[1:3,2:4] print(n)

49

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
  1. Modification d’un tableau
Fonction/Opération Rôle Exemple
Le signe "=" Remplacer les valeurs d’un
tableau
v=np.arange(1,5)
v[1]=9
print(v) # [1, 9, 3, 4]
m=np.arange(1,17).reshape(4,4)
m[0] = [11, 12, 13, 14]
m[1] = 100
m[:,2:4] = 77
append(arr, values,
axis)
ajouter une valeur, placée
en dernière position
m=np.arange(1,17).reshape(4,4)
ligne = np.array([[17, 18, 19, 20]]) # Créer un tableau ligne (1,4)
m= np.append(m, ligne, axis=0) # Ajouter une ligne à la fin
col = np.array([[7],[7],[7],[7],[7]]) # Créer un tableau col (5,1)
m=np.append(m, col, axis = 1) # ajouter une colonne à la fin
Insert(arr, indices,
values, axis)
insérer une valeur dans un
tableau
m=np.arange(1,17).reshape(4,4)
m=np.insert(m,1, [[0,0,0,0]],axis=0) # insérer une ligne à l’indice 1
# insérer deux lignes aux indices respectifs 2 et 3
m = np.insert(m, [2,3],[[5,55],[5,55],[5,55],[5,55],[5,55]],axis=1)

51

Fonction/Opération Rôle Exemple
delete(arr,indices,axis) Supprimer via indice v = np.array([1.2,2.5,3.2,1.8])
# une plage d’indices est possible
v = np.delete(v,2)
resize(arr, new_shape) Redimensionner un tableau, 1 valeur pour
vecteur, couple de valeurs pour matrice
m = np.ones(shape=(2,2))
m=np.resize(m,(3,3))
m=np.random.randint(0,101,(2,5))
m=np.resize(m,(2,6))
concatenate((a1,a2,..,an), axis) Concaténer une séquence de tableaux le
long d'un axe existant.
Si les tableaux sont de dimension > 1, on
peut utiliser vstack (vertical) ou hstack
(horizontal)
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
np.concatenate((a, b), axis=0)

Advertisement

52

  1. Tri,recherche et extraction

a = np.array([[1,5,4],[3,2,1]]) # trier les lignes (axis = 0) pour chaque colonne np.sort(a, axis=0) # trier le tableau aplati np.sort(a,axis=None)

A = np.array([1, 3, -2, 5]) np.argsort(A)

v = np.array([1, 7, 4, -3, 6, 7]) np.where(v==7)

a = np.array([[1,4],[3,9]]) np.max(a)

a = np.array([[6,4],[3,9]]) # recherche indice de valeur max des lignes (axis = 0) pour chaque colonne np.argmax(a, axis=0)

Col1 Fonction Rôle
sort(arr, axis, kind, …) Renvoie une copie triée d'un
tableau.
argsort(arr, axis, …) Renvoie les indices des élements
triés
where(condition) Renvoie les index où une
condition donnée est True.
max(arr, axis, ….) Renvoie la valeur maximal
(L’équivalent existe pour min )
argmax(arr, axis, ….) Renvoie l’indice de valeur
maximal
(L’équivalent existe pour min )
5 4
Fonction Rôle Exemple
argpartition(a,k) La fonction est utilisée pour créer
une copie partitionnée indirecte
du tableau a avec ses éléments
réorganisés de telle manière que
la valeur de l'élément en k-ième
position soit à la position qu'elle
serait dans un tableau trié. Tous
les éléments plus petits que le k-
ème élément sont déplacés
avant cet élément et tous égaux
ou supérieurs sont déplacés
derrière lui.
L'ordre de tous les éléments dans
les partitions n'est pas défini.
x = np.array([12, 10, 12, 0, 6, 8, 9, 1, 16, 4, 6, 0])
indexval = np.argpartition(x, -4)[-4:]
print(index
val) # [1, 0, 2, 8]
print(np.sort(x )) # [10, 12, 12, 16]
0
1
2
3
4
5
6
7
8
9
10
11
12
10
12
0
6
8
9
1
16
4
6
0
3
11
7
9
4
10
5
6
1
0
2
8
55
extract(condition,a)
est utilisée pour extraire des
éléments spécifiques d’un
tableau basé sur une certaine
condition. Avec extract(), on
peut aussi utiliser des conditions
comme and et or.
a = np.array([1, 7, 3, 13, 6,11,16,19])
cond = np.mod(a, 2)==1
print(cond) #
# Utiliser extract() pour obtenir les valeurs
res1=np.extract(cond, a)
print(res1) #[ 1 7 3 13 11 19]
# Appliquer directement la condition sur extract()
**res2=np.extract(((a < 5)
(a > 15)), a)
print(res2) #[ 1 3 16 19]**
55
extract(condition,a)
  1. Opérateurs arithmétiques
Col1 Opérateur Syntaxe Exemple
Addition + a=np.arange([5,1,-2, 3])
b=a+4
Soustraction _ a=np.arange(4)
b=np.arange(4,9)
c=b-a
Multiplication * a=np.random.randint(0,100,(3,3))
b=np.zeros((3,3))
c=a*b
[[25 31 28]
[31 3 69]
[40 61 51]]
Division / np.array([17,8,12.5])/10
Puissance ** np.array([1,2,4,8])2**
Division entière // np.array([10,17])//np.array([5,11])
Reste de la division entière % np.array([10,17])%np.array([5,11])
Produit matricielle dot(a,b) a = [[1, 0], [0, 2]]
b = [[4, 1], [2, 2]]
np.dot(a, b)
[[4 1]
[4 4]]
56

Exemple:

Fonction Description
greater() Supérieur à
greater_equal() Supérieur ou égal à
less() Inférieur à
less_equal() Inférieur ou égal à
equal() Egal à
not_equal() Différent de
logical_and() Et logique
logical_or() Ou logique
Logical_xor Xor logique
1 10 3 24
9 12 40 2
0 7 2 14
  1. Fonctions mathématiques

Exemple:

Fonction Description
negative(x) Opposés des éléments de x
absolute(x) Valeurs absolues de x
rint(x) Arrondi de x à l’entier
floor(x) Troncate x à l’entier inférieur
ceil(x) Troncate x à l’entier supérieur
sqrt(x) Racine carré des éléments de x
square(x) Carré des éléments de x
sin(x) Sinus des éléments de x
cos(x) Cosinus des éléments de x
exp(x) Exponentielle des éléments de x
log(x) Logarithme népérien des éléments de x
exp2(x) 2x

59

  1. Fonctions statistiques

Exemple:

Fonction Description
sum(x) Retourne la somme des éléments
prod(x) Retourne le produit des éléments
mean(x) Retourne la moyenne
var(x) Retourne la variance
covar(x) Retourne la covariance
std(x) Retourne l’écart-type
median(x) Retourne la médiane
average(x,weight) Retourne la moyenne (possibilité
d’utiliser des poids)
percentile(x,p) Retourne le p-ème percentile de x
corrcoef(x) Retourne les coefficients de
corrélation

60