Introduction à la programmation Python3
Introduction à la programmation Python3
& PROGRAMMATION
PROGRAMMATION
AVEC PYTHON3.
3ème & 4ème Scientifiques
Valeur/contenu
Nom/identifiant
Exemples en python :
- Soustraction ou changement de signe
Y=5 # Y de type int
* multiplication
Z=Y<10 # Z de type bool et aura comme valeur True
/ Résultat de la division réelle
X= Y in {6, 48,14,145} # X de type bool et aura comme valeur False : Vérifier
// Résultat (quotient) de la division entière
si la valeur de la variable Y (int) est dans l’ensemble (set) des valeurs.
% reste de la division entière
T= Y in range (3,20)# T est de type bool et a comme valeur True : Vérifier si
** Puissance xp
la valeur de la variable Y (int) est dans l’intervalle [3..19] # On peut écrire
Quelques fonctions arithmétiques prédéfinis :
T= 3<=Y<=19
En python Description Type du paramètre Type du résultat Exemples
abs(x) |x|= Valeur absolue de x Entier /réel Type du paramètre print(abs(-45.98)) # on affiche 45.98
round(x) Retourne l’entier le plus proche de x. En Entier/réel entier print(round(589) ) # on affiche 589
python, si la valeur après la virgule est print(round(5.2) ) # on affiche 5
égale à 5, elle renvoie l’entier pair le print(round(-5.8) ) # on affiche -6
plus proche print(round(4.5) ) # on affiche 4
round(x,d) Retourne le réel le plus proche de x avec Entier /réel Type du paramètre print(round(5.876,2) ) # on affiche 5.88
d chiffres après la virgule print(round(14.178172,3) ) # on affiche 14.178
int(x) Fonction qui retourne la partie Entier/réel entier print ( int(-54.23)) # on affiche -54
entière de x print (int(8457) ) # on affiche 8457
Le module math de python offre les fonctions et les constantes mathématiques usuelles
Opérateurs de base et fonctions prédéfinis
NB : En python : c1 =’a’ # c1 est une variable de type str de taille (len) = 1 : une chaine composée
str
+32
Solution : ch=ch[:2]+"k"+ch[3:]
On affiche
Les fonctions prédéfinies sur une str avec len =1 ou sur un caractère de la chaine Nom_chaine[i] :
Fonction Rôle Type d’entrée Type de Exemples
python sortie
ord(C) Renvoie le code ASCII de C. str avec len =1 ( 1 caractère) Entier ord(‘A’) vaut 65 ; ord(‘1’) vaut 49
chr(N) Renvoie le caractère dont le code ASCII est N. Entier caractère chr(66) vaut ‘B’ ; chr(98) vaut ‘b’
[]
[0. 0. 0. 0. 0.]
[1. 1. 1. 1. 1.]
[0.26149518 0.67520582 0.54851754 0.42093169 0.02086555]
Partie 3 : Les structures algorithmiques simples = Entrée des données, sortie des résultats et affectation
Action Syntaxe et vocabulaire Exemples Retenons
Affectation : Action de stocker python X = 10 #X de type int - L’affectation écrase l’ancienne valeur de la
Y = 8/3*X #Y de type float variable à gauche.
une valeur donnée dans une
Python Var = valeur Z=Y #Z de type float - C’est toujours l’expression à droite qui est
variable. Permet de modifier Var = expression T=''lien'' #T de type str exécutée en premier lieu.
Var1 = nom_var2 T=T[ :2]+ ''o'+T[ 3:]
sa valeur (mettre à jour son - En python, le type d’une variable est
U,V=5,X #affectations parallèles de
contenu par une nouvelle différentes valeurs à différentes dynamique : Une variable peut changer de
variables type durant l’exécution d’un même
valeur). M=N=8.214 #affecter programme. Python identifie le type de la
simultanément la même valeur à variable suivant la valeur affectée.
différentes variables
%[P.d]f Réel Afficher la valeur de nom_var qui est un réel sur P positions dont d décimales (chiffres après la virgule) avec
f :float arrondissement si le nombre d de chiffres après la virgule demandé est inférieur au nombre de chiffres de l’argument
nom_var
P= nombre total de positions de l’espace d’affichage (y compris le point).
Et d= nombre de chiffres après la virgule
NB : pour les réels, on peut aussi utiliser la fonction round (voir P2 section types simples réel)
print(round(nom_var, d))
x=3.143789
print("x=%f"%x) x=3.143789
print("x=%.2f"%x) x=3.14
print("x=%6.3f"%x) x= 3.144
Exemple en python :
nom='sami'
solde=125.4866
code= 12365
print("Bonjour,%8s. \n Votre code est %10d et votre solde est %10.2f ." % (nom,code,solde))
Résultat: Bonjour, sami.
Votre code est 12365 et votre solde est 125.49 .
On affiche le nom sur 8 positions et le code sur 10 positions et le solde sur 10 positions avec 2 positions après le point.
\n : C'est une séquence d'échappement permettant un saut de ligne
Méthode 2 : En utilisant la fonction .format (): print ( ' text1 {0 :type_format1} text2 {1 :type_format2} text3 '.format (var1, var2))
La méthode .format() agit sur la chaîne de caractères entre' ' ou "" à laquelle elle est attachée par le point. La chaine contient des
accolades {} comme espaces réservés qui précisent l'endroit où le contenu de la variable doit être inséré dans la chaîne. Les {} peuvent
contenir des arguments en fonction de leur position ou d'un mot clé pour spécifier l'ordre.
Juste après la chaîne de caractères, l'instruction .format (var1, var2, ... varn) fournie la liste des variables à insérer, d'abord la
variable var1 puis la variable var2…. Sachant que var1 est d’ordre 0, var2 est d’ordre 1 etc…
Remarque : Il est possible d'indiquer entre les accolades {} dans quel ordre afficher les variables en ajoutant leur numéro
d’ordre. Cela permet de modifier l'ordre dans lequel sont affichées les variables.
Exemple en python :
nom='sami'
solde=125.4866
print ("affichage 1:")
print('bonjour {}. Aujourd\'hui ton code est {}. Ton solde est {}'.format(nom,125478,solde))
print("affichage 2:",end=' ')
print("bonjour {2} ton code est {0}. Ton solde est {1}".format(125478,solde,nom))
print("affichage 3:")
print("bonjour {1:<10s} ton code est {0:>8d}. Ton solde est {2:12.6f}".format(125478,'sami',solde))
print("affichage 4:")
print("bonjour {:*^10s} ton code est {:8d}. Ton solde est {:.6f}".format('sami',125478,solde))
Résultat:
affichage 1:
bonjour sami. Aujourd'hui ton code est 125478. Ton solde est 125.4866
affichage 2: bonjour sami ton code est 125478. Ton solde est 125.4866
affichage 3:
bonjour sami ton code est 125478. Ton solde est 125.486600
affichage 4:
bonjour ***sami*** ton code est 125478. Ton solde est 125.486600
A choix multiples Python Le sélecteur doit être soit une variable soit une expression à évaluer
un sélecteur / plusieurs Les valeurs doivent être de même type que le sélecteur
match sélecteur :
choix : plusieurs traitements
case Val1 : Val2 | Val3 | Val4… : représente un ensemble de valeurs
Traitement1 sélecteur if Val5<=sélecteur<= Val6 : représente un intervalle de
Exemple 4 en python : valeurs.
case Val2 | Val3 | Val4…:
Traitement2 Si le sélecteur ne prend aucune valeur parmi celles citées, c’est le
case sélecteur if Val5<=sélecteur<= Val6: traitement N qui sera exécuté.
Traitement3 Chaque traitement peut comporter une ou plusieurs instructions.
…………………………. La clause _est facultative.
………………………….
case _ :
TraitementN Cette structure match … case fonctionne
avec la version python 3.10 ++. Pour une
version de python ≤ 3.9, on pourra utiliser
la structure if généralisée.
python Remarques
0
1 Exemple 3 python :
2 3 4 5 6 7 8 3 5 7
3
4
(1) BI La Borne inférieure du compteur : c’est la première valeur pour laquelle le
traitement est effectué. Par défaut, elle est égale à 0.
(2) BS : La Borne supérieure du compteur non incluse.
(3) pas: La valeur du pas du compteur est par défaut, elle est égale à 1 et peut
être :
o Positive si BI ≤ BS
o ou négative si BI≥ BS.
Exemple 4 python : Exemple 5 python :
for c in range(9,3,-2): for c in range(-3,-15,-4):
print(c, end='*') print(c, end='|')
Résultat : 9*7*5* Résultat: -3|-7|-11|
Lycée pilote Nabeul 16 Professeur : Mme Ihsen MANSOUR
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques
while not (condition) : (3) Condition_sortie : condition(s) de sortie dans la boucle avec la valeur
True.
Python
[initialisations]
while not (condition_sortie) :
Traitement
Définition d'une Bloc d’instructions nommé et paramétré réalisant une certaine tâche. Elle admet zéro,un ou plusieurs paramètres et renvoie un
fonction ayant des ou plusieurs résultats (valeurs de retour).
valeurs de retour
Définition d'une Bloc d’instructions nommé et paramétré réalisant une certaine tâche. Elle admet zéro,un ou plusieurs paramètres mais ne
fonction n’ayant pas de renvoie pas de résultat (None : aucune valeur de retour).
valeur de retour
Syntaxe d'une Déclaration : L'appel d'une fonction :
fonction ayant 1 ou def nom_fonction (pf1,pf2,…,pfN) : variable=Nom_fonction(pe1,pe2,…,peN)
plusieurs valeurs Bloc d’instructions
de retour NB : L’appel d’une fonction ayant un ou plusieurs résultats est un membre d’une
return expression
pf : paramètre formel expression.
Syntaxe d'une pe : paramètre effectif
Déclaration : L'appel d'une procédure :
Fonction n’ayant def nom_module(pf1,pf2,…,pfN) : Nom_module (pe1,pe2,…peN)
pas de valeur de Bloc d’instructions
retour NB : L’appel d’une fonction sans valeur de retour est une instruction.
Les paramètres Paramètres formels : Paramètres effectifs :
d'un module Paramètres qui sont définis lors de la Paramètres spécifiés lors de l'appel du module.
définition (déclaration) du module.
Portées des Variable locale : Variable globale : Définie en dehors d’un module (dans le programme
variables Déclarée dans le corps d’un module. Elle n’est principal).
accessible qu’à l’intérieur du module dans Elle est visible et utilisable dans tout le programme. Mais le module ne peut
lequel elle a été déclarée. la modifier qu’en utilisant le mot clé "global" avant la variable dans le sous-
programme.
Passage de Passage par valeur : Passage par référence : par adresse : par variable
paramètres Les variables de type simples : numériques (int, Les structures de données mutables (array …) passent par référence.
float), booléen (bool) et les types immutables (str, Le module utilise l’adresse du paramètre effectif en accédant directement à
tuple) passent par valeur : ne sont pas modifiables. son contenu. La valeur du paramètre effectif sera donc modifiée suite à la
Le paramètre formel reçoit uniquement une copie de modification de la valeur du paramètre formel.
la valeur du paramètre effectif. La valeur du
paramètre effectif ne sera jamais modifiée dans la
fonction.
Partie 6 : Programmation évènementielle : Programmation avec la bibliothèque PyQt5, des widgets de l’interface graphique (.ui) créée avec Qt Designer
Dans de nombreux domaines comme la domotique ou la météo, l’interface graphique est privilégiée au mode texte.
File New Widget, Insérer les widgets, faire la mise en forme, enfin renommer les objets, puis enregistrer le fichier sous le nom: [Link] dans un
dossier.
② ETAPE 2 : Programmation évenmentielle : Programmation des différents widgets de l’interface QT avec le langage de programmation
Python en utilisant la bibliothèque PyQt5
On va faire la programmation des interfaces graphiques (GUI : Graphical User Interface) avec la bibliothèque PyQt5 qui permet d’utiliser la bibliothèque
Qt version 5 avec Python afin de programmer des interfaces graphiques Qt avec Python.
PyQt : Python (langage de programmation) et QT (une bibliothèque multi plateforme complète pour créer des interfaces graphiques).
La bibliothèque PyQt permet de réaliser la connexion entre l’environnement Python et la boîte à outils GUI toolkit Qt .
La programmation évènementielle est une programmation basée sur les évènements.
Le programme sera principalement défini par ses réactions aux différents évènements qui peuvent se produire, c’est-à-dire des changements d’état
Les modules (Fonctions) définis par un code, seront appelés et exécutés suite à un évènement déclenché par l’utilisateur.
Exemples d'évènements :
Le clic sur un bouton, La modification du contenu d’une zone de texte, Etc…
La programmation évènementielle des applications Qt gère les interactions avec l’utilisateur et est basée sur un mécanisme appelé signal / slot :
• Un signal est un message émis par un widget lorsqu’un évènement particulier se produit.
(Exemple : On a cliqué sur un bouton).
• Un slot est une fonction qui va être appelée en réponse à un signal particulier (lorsqu’un événement
s’est produit).
• On dit que le signal appelle le slot. Un signal est connecté au slot via la fonction connect()
• Ensuite, à chaque fois que l’évènement sera détecté par la boucle d’évènement exec_(), le gestionnaire d’évènement sera alors exécuté.
Etape 2-a Importation de l’interface avec Python :
Dans Thonny, écrire un script Python .py et l’enregistrer dans le même dossier que l’interface permettant de charger l’interface graphique .
fonction :
Récupérer le texte d’un « Line Edit » dans une variable : ch=fen.champ_saisie.text()
Slots :
Modifier le texte d’un « Line Edit » : fen.champ_saisie.setText(' Un texte ')
Effacer le contenu d’un « Line Edit » : fen.champ_saisie.clear()
Ajouter à la fin du contenu du champ de saisie : fen.champ_saisie.insert ('plus')
Remarque : Il y a aussi textChanged :Detection de changement de champ de saisie par edition ou par affectation de variable.
Un signal est émis chaque fois que la touche « Entrée » est enfoncée dans le champ de saisie, et le traitement 2 est exécuté.
def traitement2() :
………
fen.champ_saisie.[Link](traitement2)
[Link]
Signaux : ● Un signal est émis chaque fois que le bouton est appuyé, et le traitement 3 est exécuté
def traitement3() :
………
[Link](traitement3)
Remarque 1: Il y a aussi les signaux pressed() et released()