Formation Python
Formation Python
FORMATION PYTHON
1
Plan
Présentation de Python
Les types et les opérations de base
Les structures conditionnelles
Les listes, les tuples et les dictionnaires
Les boucles While et For
Les modules
Les exceptions
La programmation orientée objet
La gestion du temps
Interagir avec les fichiers
2
Inventé en 1989 par Guido van Rossum
4
SPYDER
5
Présentation de Python
Bonton d’exécusion
La Zone de saisie
6
Installation python
7
Les types et les opérations de base
Python comme calculatrice:
On peut directement entrer des calculs dans la console.
Les quatre opérations
» 2+2 »(50-5*6)/4
» 3+5*6 »8/2
Arithmétique
• Les nombres entiers sont de type int
• Avec une partie décimale sont de type float (les nombres flottants).
• Les chaînes de caractères sont de type str
La commande type() donne le type d’une expression.
» type(2)
» type(2.0)
8
Les types et les opérations de base
10
Les types et les opérations de base
11
Les types et les opérations de base
12
Les types et les opérations de base
» a=input("Saisir a : ")
» a=a+1
» print ("a vaut ",a)
13
Les types et les opérations de base
Sous Python, les noms de variables doivent obéir à quelques règles simples :
14
Les types et les opérations de base
1. Affectez les variables temps et distance par les valeurs 6.892 et 19.7.
Calculez et affichez la valeur de la vitesse.
15
Python : Les structures
conditionnelles
16
Les structures conditionnelles
Attention !
Il n’y a pas de mot then.
On décale d’une tabulation tout ce qui fait dans le « alors » et le « sinon ».
Après chaque mot clé on trouve un « : »
Un test d’égalité se fait avec deux signes égal : ==
17
Les structures conditionnelles
18
Les structures conditionnelles
19
Les structures conditionnelles
20
Les structures conditionnelles
21
Les structures conditionnelles
22
Les structures conditionnelles
4. Ecrire un programme qui permet de saisir un nombre puis déterminer s’il appartient à
un intervalle donné, sachant que les extrémités de l’intervalle sont fixées par
l’utilisateur
5. Ecrire un programme qui demande deux nombres à l’utilisateur et l’informe ensuite si
leur produit est négatif ou positif. Attention toutefois : on ne doit pas calculer le produit
des deux nombres.
6. Ecrire un programme qui permet de calculer le montant des heures supplémentaires
d’un employé, sachant le prix unitaire d’une heure selon le barème suivant :
— Les 39 premières heures sans supplément:
— De la 40ième à la 44ième heure sont majorées de 50%,
— De la 45ième à la 49ième heure sont majorées de 75%,
— De la 50ième heure ou plus, sont majorées de 100%
23
Les nombres aléatoires
La bibliothèque random
Application:
1. Programme qui affiche Pile/Face au hasard.
2. Programme qui affiche
Pierre/Feuille/Ciseaux au hasard.
24
Les listes
Pour manipuler les données des listes, nous devons faire appel à
leurs coordonnées:
25
Les listes
Pour repérer des éléments présents dans une liste incluse dans une
liste, il faut faire comme suit:
26
Les listes
27
Les listes
Les opérations possibles sur les listes sont les additions (+) et les multiplications
(*) par des nombres entiers.
28
Les listes
29
Les listes
30
Les listes
31
Application
1. Définir la liste : liste =[17, 38, 10, 25, 72], puis effectuez les actions suivantes :
– triez et affichez la liste ;
– ajoutez l’élément 12 à la liste et affichez la liste;
– renversez et affichez la liste ;
– affichez l’indice de l’élément 17 (en utilisant liste.index);
– enlevez l’élément 38 et affichez la liste ;
– affichez la sous-liste du 2e au 3e élément ;
– affichez la sous-liste du début au 2e élément ;
– affichez la sous-liste du 3eélément à la fin de la liste ;
– affichez la sous-liste complète de la liste ;
-affichez le dernier élément en utilisant un indiçage négatif.
32
Application
33
Les tuples
34
Les dictionnaires
35
Les dictionnaires
Une boucle while répète les instruction tant que la condition d’entrée est vérifiée (True).
Les instructions présentes dans la boucle doivent être décalées d’un alinéa de plus que
l’initialisation de la boucle.
Attention, ce genre de boucle peut entrainer des boucles infinies!
38
Les boucles « While »
Initialisation de la variable
Cette instruction n’est pas dans la boucle. Le résultat affiché dans la console
sera la valeur de la variable i à la fin du programme (i = 10 000)
39
Les boucles « For »
La boucle for va parcourir une liste et renvoyer toutes les valeurs
de la liste dans une variable définie dans la boucle.
Afficher les nombres de 1 à 10
Fonction range()
40
Les boucles « For »
41
Les boucles « For »
42
Les boucles « For »
43
Python : Les Fonctions
44
Les fonctions
Syntaxe:
45
Les fonctions
Le but d’une fonction est de pouvoir être appelée à différents endroit :
46
Les fonctions
Une fonction peut également utiliser des arguments (données d’entrée) et
renvoyer des résultats:
47
Les fonctions
Il est possible de donner des valeurs aux arguments.
48
Application
1. Écrire une procédure table avec quatre paramètres : base, debut, fin et inc. Cette
procédure doit afficher la table des base, de debut à fin, de inc en inc. Tester la
procédure par un appel dans le programme principal.
49
Application
2. pair_impair.py : écrire 2 fonctions :
pair (nbre), qui renvoie True, si le nombre est Pair
impair (nbre), qui renvoie True, si le nombre est Impair Le nombres sera demandé à
l’utilisateur. Le résultat attendu est : "La fonction Pair retourne True pour la valeur 2"
3. mini_maxi.py : écrire 2 fonctions :
mini (a,b) qui renvoie le minimum entre a et b
maxi (a,b) qui renvoie le maximum entre a et b
Les 2 nombres a et b seront demandés à l’utilisateur.
4. Fonction renvoyant plusieurs valeurs sous forme d'un tuple.
Écrire une fonction minMaxMoy() qui reçoit une liste d'entiers et qui renvoie le
minimum, le maximum et la moyenne de cette liste. Le programme principal appellera
cette fonction avec la liste : [10, 18, 14, 20, 12, 16].
50
Application
51
Python : Les modules
52
Les modules
53
Les modules de python
Voici une liste de modules de base que vous serez amené un jour ou l'autre à utiliser.
random : fonctions permettant de travailler avec des valeurs aléatoires
math : toutes les fonctions utiles pour les opérations mathématiques
(cosinus,sinus,exp,etc.)
time : fonctions permettant de travailler avec le temps
54
Le module math
math.ceil(x) : le plus petit entier plus grand ou égal à x.
math.fabs(x) : Retourne la valeur absolue de x
math.factorial(x) : Retourne la factorielle de x.
math.floor(x) : le plus grand entier plus petit ou égal à x.
math.sin(x)
math.cos(x)
math.tan(x)
Gestion du temps
Nous allons voir dans un premier temps comment afficher ce fameux nombre
de secondes écoulées depuis le 1er janvier 1970 à 00:00:00. On utilise la
fonction time de module time
»import time
»time.time()
afficher l’heure actuel
»time.localtime()
»time.ctime ()
la mise en veille
»time.sleep()
56
Importer des fonctions d'autres fichiers
puissance.py
57
Importer des fonctions d'autres fichiers
58
Exécution d’un module en tant que script
Python : Les exceptions
60
Les exceptions
On remarque tout d'abord que python est certes sevère mais juste ; il
nous dit pourquoi il n'est pas content: ZeroDivisionError
Les exceptions
63
La programmation orienté objet
64
La programmation orienté objet
65
Exercice: La classe CompteBancaire
1. Écrire un programme python qui permet de définir une classe
CompteBancaire(), qui permette d’instancier des objets tels que compte1,
compte2, etc. Le constructeur de cette classe initialisera deux attributs
d’instance nom et solde, avec les valeurs par défaut ’Dupont’ et 1000.
Trois autres méthodes seront définies :
•depot(somme) permettra d’ajouter une certaine somme au solde ;
•retrait(somme) permettra de retirer une certaine somme du solde ;
•affiche() permettra d’afficher le nom du titulaire et le solde de son compte.
66
Exercice:
2. Définir une classe Rectangle avec un constructeur donnant des valeurs
(longueur et largeur) par défaut et un attribut nom = "rectangle", une méthode
d’affichage et une méthode surface renvoyant la surface d’une instance.
Définir une classe Carre héritant de Rectangle et qui surcharge l’attribut
d’instance : nom = "carré". Dans le programme principal, instanciez un
Rectangle et un Carre et affichez-les..
67
Python : Les interfaces
graphiques
68
Créer des graphiques scientifiques
70
Créer des graphiques scientifiques
La courbe est juste mais je ne souhaite délimiter moi même les limites du graphique.
Il est possible d'encadrer son graphique à l'aide de la méthode axis(xmin, xmax,
ymin, ymax).
71
Créer des graphiques scientifiques
Les widgets.
Les labels.
Les boutons.
74
Interfaces graphiques et Python
75
Interfaces graphiques et Python
76
Les widgets
A chaque widget correspond une classe
Instanciation de l’objet avec une méthode constructeur (commence par
une majuscule et porte le nom de la classe du widget, plusieurs existent
par widget)
Ajout de l’objet à l’interface (la fenêtre racine) avec la méthode pack
Des méthodes communes à tous les widgets : pack(),
grid(),place(),config(), ...
77
La fenêtre
Utilisation de la librairie graphique Tk pour les GUI:
78
Widgets
L’interface graphique construite à partir des widgets composants tel que :
• button : bouton poussoir • scrollbar : barre de défilement
• checkbutton : case à cocher • panedwindow : panneau coulissant
• radiobutton : bouton radio • text : conteneur hypertexte évolué
• label :étiquette • canvas : conteneur d'objets graphiques 2D évolué
• Entry : champ de texte en entrée • tk_chooseColor : sélecteur de couleur
• listbox : liste défilante • tk_chooseDirectory : sélecteur de répertoire
• tk_optionMenu : liste • tk_dialog : boîte de dialogue modale
• menu : menu déroulant • tk_getOpenFile : sélecteur de fichier
• menubutton : menu déroulant à partir d'un • tk_messageBox : boîte de message
bouton • tk_popup : menu contextuel
• scale : curseur horizontal et vertical
• labelframe : cadre avec titre
79
Widgets Button
Widgets Button est utilisé pour insérer des boutons dans une interface
graphique. Un bouton est relié à une action !
La syntaxe:
w = Button ( Fenêtre, option=value, ... )
Exemple:
Exemple :
from tkinter import *
fen=Tk()
obj=Label(text= "zone de txt",bg= "blue",fg="yellow",bd=3)
obj.pack()
obj2=Label(bitmap= "question",bg= "red",fg= "grey",bd=5)
obj2.pack()
fen.mainloop()
81
Les zones de saisie : classe Entry
Elles sont utilisées pour la saisie de textes par l’utilisateur.
obj=Label(text="zone de saisie:")
obj.pack()
obj2=Entry(bg="white",fg="blue",width=55)
ch=obj2.get() #permet d’obtenir le contenu de la zone de saisie,
renvoie une chaîne.
obj2.pack()
fen.mainloop()
82
Méthode grid( )
Grid(): considère la fenêtre comme un tableau, avec des lignes (row) et des colonnes (column).
83
Les cases à cocher
84
Les boutons radio
Les boutons radio sont similaires aux cases à cocher, à ceci près qu'on les assemble par
groupes,
bouton_radio = gtk.RadioButton(group=None, label=None)
Exemple
import tkinter as tk
app = tk.Tk()
variable = tk.IntVar()
tk.Radiobutton(text='foo', variable=variable,value=1).pack()
tk.Radiobutton(text='bar', variable=variable,value=2).pack()
variable.get()
app.mainloop()
85
Les listes déroulantes
Listbox: Ce widget permet de construire une liste dans laquelle on peut sélectionner un ou
plusieurs éléments
Syntaxe: w = Listbox ( fenêtre, option, ... )
from tkinter import *
import tkinter
top = Tk()
Lb1 = Listbox(top)
Lb1.insert(1, "Python")
Lb1.insert(2, "Perl")
Lb1.insert(3, "C")
Lb1.insert(4, "PHP")
Lb1.insert(5, "JSP")
Lb1.insert(6, "Ruby")
Lb1.pack() top.mainloop()
86
Intervalle de sélection
La finalité du widget de type « Scale » , est de permettre à l’utilisateur de choisir un entier ou un
flottant situé à l’intérieur d’un intervalle précis.
from tkinter import *
master = Tk()
w = Scale(master, from_=0, to=100)
w.pack()
w = Scale(master, from_=0, to=200, orient=HORIZONTAL)
w.pack()
mainloop()
87
Une fenêtre primaire
Une fenêtre primaire “ toplevel” est une fenêtre qui possède une existence
indépendante pour le gestionnaire de fenêtre du système d’exploitation
Syntaxe : w = Toplevel ( option, ... )
Exemple:
from tkinter import *
top = Toplevel()
top.title("About this application...")
mainloop()
88
Saisies/sélections rotatives
Le widget Spinbox sert à donner un moyen à l’utilisateur de
sélectionner une valeur parmi un ensemble de valeurs données ou
d’en proposer une autre..Syntaxe: Spinbox( master, option, ... )
Exemple:
from tkinter import *
master = Tk()
w = Spinbox(master, from_=0, to=10)
w.pack()
mainloop()
89
Interagir avec les fichiers
90
Fichier
Le mode est donné sous la forme d'une chaîne de caractères. Voici les
principaux modes :
Modes d’ouverture:
‘r’ : ouverture en lecture (Read).
‘w’ : ouverture en écriture (Write). Le contenu du fichier
est écrasé. Si le fichier n'existe pas, il est créé.
‘a’ : ouverture en écriture en mode ajout (Append). On
écrit à la fin du fichier
‘x’ : lecture et écriture
‘r+’: lecture/ écriture dans un fichier
Méthode de lecture : read, readline,readlines…..
Méthode d’écriture : write
91
Fichier : read
Voiture.txt
92
Fichier : readline
93
Fichier : readlines
94
Fichier : write()
95
Fichier : writelines()
96
Fichier : ajout ’a’’
97
Fichier : Exercice
98
Merci pour votre
attention
99