0% ont trouvé ce document utile (0 vote)
4 vues23 pages

Introduction à la programmation Python3

Transféré par

benslimeneilef
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues23 pages

Introduction à la programmation Python3

Transféré par

benslimeneilef
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

PENSEE COMPUTATIONNELLE

& PROGRAMMATION

PROGRAMMATION
AVEC PYTHON3.
3ème & 4ème Scientifiques

Mme Ihsen Mansour


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

Partie 1 : Les variables : Les types de données simples d’une variable


Variable Déclaration= Réservation de l’espace mémoire Retenons
Variable (objet/ case
mémoire)
Case mémoire dans lequel il est En python : La déclaration d’une variable se fait au moment de
possible de mettre une valeur. l’affectation : Nom_variable = valeur  Un identificateur : doit être simple, unique et significatif
Elle est liée à une donnée de votre En python :
programme stockée dans votre Exemples :
a=14 #affecter la valeur 14 à la variable a , a est de type int  Il doit commencer obligatoirement par une lettre
ordinateur afin de pouvoir l’utiliser à
x1=19.75 # x est de type float (minuscules a z ou majuscules A Z) ou ‘_’, suivie
plusieurs reprises (faire des calculs
avec …) c=’a’ # c est de type str seulement des caractères alphanumériques (lettres et
Elle est accessible en lecture et en ch= ’4Sc’ #ch est de type str chiffres) et le caractère de soulignement “ _ “ sans espaces.
écriture. verif_1 = True # verif_1 est de type bool  Il ne doit pas être un mot clé du langage PYTHON (print,
Elle est caractérisée par son nom, input, if, for…)
NB : le type d’une variable en python est dynamique  Il est sensible à la casse : il y a une différence entre
son type et sa valeur contenue qui
peut changer durant l’exécution du majuscules et minuscules (Exemple : res, RES et Res sont
programme des variables différentes)

Valeur/contenu

Nom/identifiant

Le domaine de valeurs que peut avoir son contenu

Type de variable Les possibilités (opérations, fonctions) de son utilisation

La taille de l’espace mémoire à réserver

Lycée pilote Nabeul 1 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

Types simples numériques : nombres (int, float)


 int : entier : Est tout nombre qui ne possède pas la  float: réel : est tout nombre à virgule (qui possède la partie décimale). Un sous ensemble de
partie décimale. Un sous-ensemble de l’ensemble Z R;
(Ensemble des entiers relatifs)  Un nombre réel s’écrit sous le format partie_entière.partie_décimale
Présentattion

 Exemples en python : Exemples en python


c=1236 x4=123.6
d,e,f= int(12.3), int('123'), int(False) x5=5e3 # équivalent à 5*103 =5000.0
x6, x7,x8=float(14), float(True), float('12.65')
Opérateurs arithmétiques de base : Opérateurs relationnels
En python
En python Description <,>, <=, >=, == , !=, in
+ addition
Opérateurs de base et fonctions prédéfinis

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

Lycée pilote Nabeul 2 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

Autres fonctions prédéfinis et quelques modules python :


a- Module math (from math import *)

Le module math de python offre les fonctions et les constantes mathématiques usuelles
Opérateurs de base et fonctions prédéfinis

En python Description mathématique Type du paramètre Type du résultat Exemples


sqrt(x) √𝑥 = Fonction qui retourne la racine Entier/réel (positif) réel print ( sqrt(4) )# on affiche 2.0
carrée d’un nombre x positif
trunc(x) Fonction qui retourne la partie entière de x Entier/réel entier print ( trunc(-54.23)) # on affiche -54
print ( trunc(8.647) ) # on affiche 8
floor(x) Entier/réel entier print ( floor(-23.11)) # on affiche -24
Fonction qui retourne le plus grand entier print ( floor(300.16)) # on affiche 300
inférieur à x print ( floor(300.72)) # on affiche 300
ceil(x) Fonction qui retourne le plus petit entier Entier/réel entier print ( ceil(-23.11)) # on affiche -23
supérieur à x print (ceil(300.16)) # on affiche 301
print (ceil(300.72)) # on affiche 301
b- Module random (from random import *)
Le module random offre des fonctions du hasard qui permettent de générer des valeurs aléatoires par le programme :

En python Description Exemples


randint (a, b) Retourne un Entier int aléatoire dans [a,b] c=randint(5,10)# c prend un entier aléatoire de [5..10] : les valeurs possibles
de [5,6,7,8,9,10]

Type simple logique : bool Opérateurs de base


 Bool : Opérateurs logiques sont applicables pour le type booléen seulement :
Une variable avec ce type ne peut prendre que l’une En python
des deux valeurs logiques possibles : (True ) et and( & ), or ( | ), not, ^ (ouex en algo)
(False). Exemples : a=True
En python
Opérateurs relationnels :
<,>, <=, >=, == , !=, in

Exemples : False < True ; True>False


NB : int(False) vaut 0 , int(True) vaut 1, bool(0) vaut False , bool(1) vaut True
 NB : L’utilisation des opérateurs relationnels (<, >, <=, >=, ==, !=, in) donne toujours un résultat
de type booléen.
Lycée pilote Nabeul 3 Professeur : Mme Ihsen MANSOUR
 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

Types simples alphanumériques : str


 str :
 Une chaine de caractères : suite ordonnée de caractères située en Python (entre "" ou ") de
taille (len) >=0 Avec Min=0 caractères : chaîne vide (ch = ")
 Le plus petit composant d’une chaine est un caractère qui peut être un des 256
caractères : les chiffres, les lettres majuscules, les lettres minuscules les
symboles imprimables et non imprimables.
 Les caractères sont classés (ordonnés) selon leurs codes ASCII : un entier unique 
[0..255]. Les caractères ayant un code ASCII <32 sont non imprimables.
NB : l’espace est un caractère blanc
 Le caractère "" est un caractère vide.

NB : En python : c1 =’a’ # c1 est une variable de type str de taille (len) = 1 : une chaine composée
str

d’un seul caractère

+32

Lycée pilote Nabeul 4 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

Quelques opérations de base sur les str en python


Nom_chaine[n] : accéder au caractère d’indice n dans la chaine nom_chaine. section= 'Les mathématiques'
En commençant de gauche (de début), l’indice de la 1ère lettre est 0 et l’indice print (section[0], end=' ') Ch="B o n n e"
avance par 1 (+1): Nom_chaine[0] , Nom_chaine[1] … Nom_chaine[len(ch)-1] 0 1 2 3 4
avec 0≤n≤len(ch)-1 print ('Les mathématiques'[5], end=' ') -5 -4 -3 -2 -1
En commençant de droite (par la fin), l’indice de la dernière lettre est -1 et l’indice print (section[-1], end=' ')
recule par 1 (-1) . Exemple : Nom_chaine[-1] est la dernière lettre, print (section[len(section)-1], end=' ')
Nom_chaine[-2] est l’avant dernière lettre …
 Le programme affiche : L a s s
section= ‘Les mathématiques’
Nom_chaine[debut :fin] : extraire les caractères de la chaine Nom_chaine
print (section[5 :10])
compris entre l’indice debut et l’indice fin-1 ( par défaut pas =1)
print (‘Les mathématiques’[ :5])
Pour commencer du début de la chaine, on peut écrire : Nom_chaine[ :fin] . print (section[4 :])
Pour arriver au dernier caractère de la chaine, on peut écrire : print (section[4 :10 :2])
print (section[-2 :-11 :-3])
Nom_chaine[ debut:] .
print (section[: :-1])
On peut fixer le pas d’avancement Nom_chaine[debut :fin :pas]
 Le programme affiche :
Si on veut inverser une chaine ch1 en python, on peut faire athém
ch2 = ch1[ : :-1] Les m
mathématiques
mté
eim
seuqitaméhtam seL
chaine1+chaine2 : concatène les deux chaines section= ‘les mathématiques’
mot=’Vive’
print(mot+’ ‘+section)
 Le programme affiche : Vive les mathématiques
Chaine*k : créer une chaine de caractères dans laquelle on répète la chaine k section= ‘4sc ’
fois. print(section*3)
 Le programme affiche : 4sc 4sc 4sc

Lycée pilote Nabeul 5 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

Opérateurs relationnels :  T = "2 " > "A "  T contient False


En python
<,>, <=, >=, == , !=  "e" in {"a","0","V","?","e","x","*"} signifie " e" appartient à
 NB : la comparaison des deux caractères (str avec len =1) en python l’ensemble (set) formé par les caractères "a","0","V","?","e","x","*"
se fait avec leur code ASCII.  ord(c) in range (ord("0") ,ord("9")+1 ) ou bien ord("0") <=
 NB : la comparaison de deux chaines se fait caractère par caractère ord(c) <= ord("9") : permet de tester si l’ordre du caractère c  à
selon leurs codes ASCII. l’intervalle ayant comme borne inférieure l’ordre de "0" et comme
borne supérieure ( l’ordre de"9"). (On peut aussi écrire "0"<= c <=
"9")

 V= "BoNjour"<"BonnE"  V contient True

Remarque : Modifier un caractère d’une chaine : Effacer des caractères de la chaine


 Au niveau python : Ch2= Ch1[ : d]+Ch1 [f: ]
ch ="abcde" Retourne une chaîne Ch2 après avoir effacé, de la chaîne Ch1, les
ch[2]="k" (interdit de faire ça :les chaine en python caractères de la position d à la position f-1 (f exclu).
est un objet immutable en python :un objet dont l'état ne
peut pas être modifié après sa création. Une fois Exemple : effacer les caractères d’indices entre 13 et
définie, vous ne pouvez plus modifier un de ses 17.
éléments par une affectation)

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’

Lycée pilote Nabeul 6 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

Quelques fonctions prédéfinies sur les str (chaines) en python

La méthode Syntaxe Rôle Exemple


Détermine la longueur d’une ch = "cours python"
chaine de caractères : le L = len ( ch )
len len ( chaine )
nombre de caractères print ( "la longueur " , L )
constituant la chaine  Le programme affiche 12
 chaine = "Cours python 2021-2022 : vers python"
[Link] ( chaine1 ) Cherche et retourne la 1ère
chaineR = "python"
position de la chaine chaine1
find  chaineR2 = "Python"
dans la chaine de caractères
print ( chaineR , " existe à la position = " , [Link] ( chaineR ))
chaine2 de la gauche vers la
print ( [Link] ( chaineR2 ))
droite ( retourne -1 si chaine1
 le programme affiche : python existe à la position = 6
n’existe pas dans chaine2)
-1 (car la chaine Python n’existe pas)
chaine = "cours python"
Convertit chaine en majuscule
upper chaine. upper ( ) print ( " La chaine en majuscule = " , [Link] ( ) )
chaine

le programme affiche : COURS PYTHON


nb = 1723514
str str ( nb ) Convertit une valeur
chiffre = str ( nb ) [4] #récupérer le caractère d’indice 4
numérique nb en une chaîne
print ( chiffre )
de caractères.
Le programme affiche "5"
Convertit la chaîne de ch = ‘1235’
int int ( ch ) caractères ch en une valeur nb = int ( ch )
entière  nb contient 1235
Convertit la chaîne de ch = ‘235.14’ ch='12'
float caractères ch en une valeur nb = float ( ch ) print (float(ch))
float ( ch ) réelle  nb contient 235.14  le programme affiche 12.0

s = "28212"  s = "282.12"


isdigit Chaine. isdigit ( ) Retourne True si la chaine print ( [Link] ( ) ) print ( [Link] ( ) )
ou bien contient seulement des Le programme affiche : True  Le programme affiche : False
isdecimal Chaine. isdecimal ( ) caractères chiffres

Lycée pilote Nabeul 7 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

Partie 2 : Les types de données composés d’une variable :


Il existe différentes solutions en python pour implémenter la structure Tableau.
Les tableaux array de la bibliothèque numpy
Numpy est un package (bibliothèque) pour Python spécialisé dans la manipulation des tableaux array spécialement conçus pour les opérations mathématiques.
Initialisation (Déclaration) d’un vecteur en utilisant la fonction array :
Syntaxe Exemples
La fonction array(): La fonction array() convertit un objet list from numpy import array
en objet ndarray. T1=array( [int( )] *6)
T2=array( [float( )] *n)
Syntaxe1 : T3=array( [bool( )] *10)
from numpy import array T4=array( [str( )] *20)
T=array([Type_element( )]*Nbmax)  T1 est un Tableau de 6 entiers initialisés à 0
 T2 est un Tableau de n réels initialisés à 0.0
 T3 est un Tableau de 10 booléens initialisés à False
NB : Pour déclarer un tableau de chaînes de caractères et éviter que  T4 est un Tableau de 20 caractères (chaines de len =1) initialisés à chaine vide ('')
chaque case contienne uniquement le premier caractère de la chaîne
from numpy import *
saisie, on peut procéder comme suit :
T5=array( [str( )] *n, dtype=object)
o ajouter "dtype = object" à la déclaration,
# T5= array([str] *n )
o ou bien supprimer les parenthèses après le "str".
 T5 est un Tableau de n chaines de caractères initialisés à chaine vide ('')
Syntaxe2 : import numpy as np
T1=[Link]([0]*6,dtype='int')
import numpy as np
T2=[Link]([0]*6)
T=[Link]([valeur]*nmax,dtype='type') T3=array( [0 for i in range (6)], int)
T4=[Link]([0]*n,float)
 La valeur entre [ ] est la valeur V1=array([ʺʺ]*n )
initiale de toutes les cases du tableau. V2=array([ʺʺ]*n , dtype=object)
V3=array([ʺʺ]*n , (str,20))
 nmax est le nombre de cases.
V4=array([ʺʺ]*n , dtype='U20')
 dtype indique le type du tableau.
 T1, T2 et T3 : Tableaux de 6 entiers initialisés par des 0
 T4 : Tableau de n réels initialisés par les valeurs 0.0
 V1 : Tableau de n caractères (chaines de len=1) contenant initialement des
chaines vides ('')
 V2 : Tableau de n chaines contenant initialement des chaines vides('')
 V3, V4 : Tableau de n chaines de longueur maximale égale à 20 caractères

Lycée pilote Nabeul 8 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

Initialisation des vecteurs particuliers en utilisant d’autres fonctions de la bibliothèque numpy :


Les fonctions zeros(n), ones(n) , rand(n) from numpy import *
permettent la création des vecteurs nuls, t=array([])
vecteurs remplis de 1, et vecteurs remplis à print(t)
valeurs (par défaut réels) aléatoires . t1=zeros(5)
print(t1)
t2=ones(5)
print(t2)
t3=[Link](5)
print (t3)

[]
[0. 0. 0. 0. 0.]
[1. 1. 1. 1. 1.]
[0.26149518 0.67520582 0.54851754 0.42093169 0.02086555]

Manipulation des ndarray en python


Au niveau python
Accès à un élément du tableau A = T[i] ( avec l’indice de la 1ère valeur est 0)
Modification d’un élément T[i] = a
Lecture d’un élément T[i]=input("donner T["+str(i)+"]= ")
Affichage d’un élément print(T[i], end=’|’)

NB : n’oublier pas le casting (int,float,…) avant input

Lycée pilote Nabeul 9 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

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

Entrée (Lecture) : Action - En python, la fonction input retourne une


consistant à saisir une valeur Python var1= input()
valeur toujours de type str.
donnée par l’utilisateur à partir - En python, afin de lire une variable de type
Python nom=input("taper votre nom ")
d’un périphérique d’entrée (par int, float… on peut utiliser le transtypage
défaut le clavier) et la prenom=input("taper votre prenom \n") (changement de type).
transférer vers la variable en Exemple : n=int(input('saisir un entier ')) #
mémoire centrale. lire un entier
 Une affectation Exemple : x=float(input('saisir un réel \n ')) #
implicite (interne) lire un réel
\n : C'est une séquence d'échappement
entre le clavier et la permettant un saut de ligne
mémoire centrale
RAM.

Lycée pilote Nabeul 10 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

Sortie (Affichage) : En python :


Instruction d’écriture Action
permettant d’afficher sur un print (Var) Affiche le contenu de la variable - La fonction print() affiche les arguments qu'on
périphérique de sortie (par print( expression) Affiche le résultat de l’expression lui passe entre parenthèses et fait un retour à
défaut l’écran) une valeur print ('message ' ) Affiche le message la ligne.
donnée. print ('message ' , VAR) Affiche le message suivi du - Si toutefois, on ne veut pas faire un retour à la
contenu de la variable ligne, on peut utiliser l'argument par le “mot-
prenom='Sami' Résultat : On affiche sur deux clé “ end
nom='Helal' lignes : Exemple :
print('Nom =', nom) Nom = Helal print('nom = ', nom, end ='|')
Python print ('Prenom = ', prenom ) Prenom = Sami print ('prenom = ', prenom)
prenom='Sami' Résultat : On affiche sur la même
ligne :
- L'argument par le “mot-clé “ sep : permet
nom='Helal'
Nom = Helal | Prenom = Sami d’afficher les arguments de print séparés par le
print('Nom =', nom, end =' | ') séparateur indiqué avec l’argument sep
print ('Prenom = '+ prenom )
Exemple :
prenom='Sami' Résultat : On affiche les arguments print( nom, prenom,18, sep='*' )
nom='Helal' de print séparés par '*'
print( nom, prenom,18, sep='*' ) Helal*Sami*18
Sortie (Affichage) : Formatage d’affichage des données en python:
Méthode1 : en utilisant le symbole % : print( "%format_type1 %format_type2 " % (nom_var1, nom_var2) )
 Dans une chaine délimitée par "" ou '', chaque expression %format_type1 , appelée marqueur de formatage (type du
format), doit correspondre une valeur de formatage de la forme %[P]c où c est un caractère qui détermine le type de valeur
(d, f, s…) et P un éventuel (optionnel) paramètre ,indiquant la précision P (entier) à utiliser pour la valeur à formater.
Format Type de Description &Exemples
d’affichage données
%[P]d Entier Afficher la valeur de nom_var qui est un entier sur P positions (caractères) en ajoutant d’espacements à gauche
d : decimal s’il y a moins de P chiffres.
integer print("Res=%d" % 3)  Res=3
print("Res=%5d" % 3)  Res= 3(4 espaces avant 3)
%[P]s Chaine Afficher la valeur de nom_var qui est une chaine sur P positions en ajoutant d’espacements à gauche s’il y a
s : string moins de P caractères.
Lan="python"
print("Nom=%s"%Lan) Nom=python
print("Nom=%9s"%Lan) Nom= python (Le mot python s’affiche sur 9 positions en ajoutant 3 espaces à
gauche)

Lycée pilote Nabeul 11 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

%[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.

Lycée pilote Nabeul 12 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

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

NB :"{}" permet d’indiquer le numéro et le format de l’argument de la fonction format


 "{0}" sera remplacé par le premier argument, "{1}" sera remplacé par le deuxième argument…
 “{0 :8d} : le premier argument (indice 0) qui est un entier qui sera affiché sur 8 positions(en laissant des espaces à gauche)
 “{1:<10s} : le deuxième argument (indice 1) qui est une chaine qui sera affiché sur 10 positions en laissant des espacements à droite (<).
 {0:>8d} : Le premier argument (indice 0) qui est un entier affiché sur 8 positions en laissant des espacements à gauche(>).
 "{2 :12.6f}" :le 3ème argument (d’indice 2) qui est un réel qui sera affiché sur 12 positions y compris le . avec 6 chiffres après la virgule.
NB: Si le nombre de chiffres après la virgule demandé est < au nombre de chiffres de l’argument, alors on applique l’arrondissement.
Si le nombre de positions demandé est inférieur au nombre de positions de l’argument, alors le formatage est ignoré.
 {:*^10s} : la chaine sera affichée centrée (^) sur 10 positions avec des * à gauche et à droite

Lycée pilote Nabeul 13 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

Partie 3 : Les structures de contrôle conditionnelles


Une structure est dite conditionnelle si l’exécution de son action (du traitement) dépend de la valeur de l’évaluation d’une ou de plusieurs conditions (Expressions booléennes).
 Un traitement peut être exécuté 0 ou 1 fois.
Str. conditionnelle Syntaxe et vocabulaire Retenons
Forme simple (réduite): On Python
restreint à l’exécution d’un seul Lorsque le résultat de l’évaluation de la condition est :  La condition est une expression booléenne simple ou
if condition :
traitement quand une condition  True : Les instructions 1..n seront exécutées. composée (en utilisant les opérateurs logiques and ,
instr 1
donnée est VRAIE.  False: Les instructions 1..nseront ignorées. or , ^, not ) qui prend soit la valeur True soit la
instr 2
 Une condition/ un traitement ….. valeur False
instr n  Faites bien attention à l'indentation en python
Faux Exemple 1 : en python
Condition
Vrai
Action1

Forme complète (alternative) : Exemple2 : en python


Python
 Une condition/ deux Faux
if condition : Condition Action 2
traitements
Traitemet1
Si la condition est vraie, on exécute Vrai
else:
l’action 1, sinon on exécute l’action
Traitement2 Action 1
2.

Forme généralisée (imbriquée):


Elle fait appel à plus que deux Faux Faux Faux
traitements en fonction des Cond 1 Cond 2 Cond n-1 Action n
conditions. L’exécution d’un Vrai Vrai Vrai
traitement donné dépend de la
condition à vérifier. L’exécution Action 1 Action 2 Action n-1
d’un traitement entraine
automatiquement la non-
exécution des autres.
 plusieurs conditions/ plusieurs
traitements

Lycée pilote Nabeul 14 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

Python  Si une condition passe à l’état vrai, seul le traitement


if condition1 : correspondant est exécuté et ceci entraine la non-exécution de tous
Traitemet1 les autres traitements
elif condition2 :  Il faut prévoir une et seule condition vraie.
Traitement2  Si aucune des N-1 conditions n’est vraie, c’est le
elif condition3 : traitement N qui sera exécuté.
Traitement3
…………………………. Remarques : en python
elif condition N-1 :  Toutes les instructions au même niveau d’indentation
Traitement N-1 appartiennent au même bloc.
else:  L’instruction pass ne fait rien. Elle peut être utilisée
Traitement N
lorsqu’une instruction est nécessaire pour fournir une
syntaxe correcte, mais qu’aucune action ne doit être
Exemple 3 : en python effectuée

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.

Lycée pilote Nabeul 15 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

Partie 4 : Les structures de contrôle itératives (répétitives, boucles)


Il arrive que dans un problème, on se trouve contraint de répéter un traitement autant de fois que le problème l’impose.
1) Structure de contrôle itérative complète (for)
 Une structure de contrôle itérative est dite complète si le nombre de répétitions est fini et connu d’avance.  répéter un traitement un nombre de fois exact. (Pas de condition)

python Remarques

Syntaxe for compteur in sequence :


Traitement - Les éléments de la séquence sont issus d’une chaîne de caractères,
d’une rangée,…
- Le compteur est une variable qui parcourt une collection de valeurs.
- Le compteur prend successivement la valeur de chaque élément de la
séquence, en commençant par le premier.
Exemple 2 python :
exemples Exemple 1 python : ch='2sciences'
for compteur in range (BI, BS, pas) : for i in range (len( ch)) :
Traitement print (ch[i], end='*')
for i in range(5) : for i in range (3 ,9) : for i in range(3 ,9,2) :
print (i) print (i , end=' ') print (i, end=' ')  Résultat: 2*s*c*i*e*n*c*e*s*

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

2) Structure de contrôle itérative à condition d’arrêt (while)


Une structure itérative est dite à condition d’arrêt si le nombre de répétitions est fini mais n’est pas connu d’avance, l’arrêt du traitement dépend
d’une condition.
Syntaxe Remarques
while condition Python (1) Condition_entrée : condition(s) d’entrée dans la boucle avec la valeur
[initialisations] True. La condition d’entrée est une variable /expression booléenne simple
while condition_entrée : ou composée qui en passant à l’état False arrête l’itération.
Traitement (2) Si la condition d’entrée risque de ne pas passer à l’état False on peut
affronter un problème de boucle infinie.

while not (condition) : (3) Condition_sortie : condition(s) de sortie dans la boucle avec la valeur
True.
Python
[initialisations]
while not (condition_sortie) :
Traitement

Exemple 1 python : Exemple 2 python : Exemple 3 python :


i=0 i=0 i=0
while i<=8 : while i<=8 : while not i>8 :
print(i,end=' ') i= i+2 i= i+2
i= i+2 print(i,end=' ') print(i,end=' ')
0 2 4 6 8
2 4 6 8 10 2 4 6 8 10

Lycée pilote Nabeul 17 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

Partie 5 : La programmation modulaire : Les sous programmes (Modules en python)


 Python n’utilise que des fonctions.

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.

Lycée pilote Nabeul 18 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

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.

① ETAPE 1 : Création de l’interface graphique en utilisant Qt Designer :


 Qt Designer est un logiciel de conception visuelle des interfaces graphiques (Il est basé sur la technique de glisser-déposer)
 Qt inclut une large panoplie de widgets qui sont les composants graphiques qui assurent les fonctionnalités standards de l’GUI.
Exemples de widgets : fenêtre, label, Line Edit, Push Button,…
 Qt Designer propose une approche basée sur les formulaires pour le développement d'applications.
 Un formulaire est représenté par un fichier d'interface utilisateur (.ui)

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).

Lycée pilote Nabeul 19 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

 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 .

Lycée pilote Nabeul 20 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

Etape 2-b Utilisation des widgets dans un script Python :

 Modifier le texte d’un label : [Link](' Un Titre ')


 Récupérer le texte d’un label dans une variable : ch=[Link]()
 Effacer le contenu d’un label : [Link]()
 Mettre un nombre dans d’un label : [Link](18.5)
Voir plus: [Link]

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]

Lycée pilote Nabeul 21 Professeur : Mme Ihsen MANSOUR


 
Domaine d’Apprentissage : Pensée computationnelle & programmation 3ème & 4ème Scientifiques

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()

Remarque: On peut fermer l’application en utilisant : [Link]([Link])


On peut effacer le contenu du champ de saisie: [Link](fen.champ_saisie.clear)
Voir plus: [Link]

Lycée pilote Nabeul 22 Professeur : Mme Ihsen MANSOUR

Vous aimerez peut-être aussi