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 :
Publicité
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.ENDcontenu = 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 lignesExemple: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 :
Publicité
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
Publicité
w.bind(evt, fonction)
- 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ésultatsproviennent 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[ |
- 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 |
- 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) |
Publicité
52
- 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(indexval) # [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) |
- 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 |
- 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
- 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