Pensée computationnelle et programmation 3ème & 4ème Scientifiques
FICHE RESUME python
A. Structures de données
La déclaration d’une variable en python se fait au moment de l’affectation : Nom_variable = valeur
1- Le type int :
Une variable de type int contient un nombre sans la partie décimale (sans virgule flottante).
Opérateurs arithmétiques Opérateurs relationnels
Opérateur Description
<,>, <=, >=, == , !=, in
+ addition
Exemples :
- 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
// Résultat (quotient) de la division entière valeur False : Vérifier si la valeur de la variable Y (int) est
% reste de la division entière dans l’ensemble (set) des valeurs.
** Puissance xp T= Y in range (3,20)# T est de type bool et a comme valeur
True : Vérifier si la valeur de la variable Y (int) est dans
2- Le type float l’intervalle [3..19] #On peut écrire : T= 3<=Y<=19
Une variable de type float contient un nombre à virgule flottante (qui possède la partie décimale).
Opérateurs arithmétiques
Opérateur Description
+ addition
- Soustraction ou changement de signe Opérateurs relationnels
* multiplication <,>, <=, >=, == , !=
/ Résultat de la division réelle
** Puissance xp
Quelques fonctions arithmétiques prédéfinis sur les types int et float :
Module math (from math import *)
fonction Description
abs(x) |x|= Valeur absolue de x En python Description mathématique
round(x) Retourne l’entier le plus proche de x. en sqrt(x) √𝑥 = Fonction qui retourne la racine
python, si la valeur après la virgule est carrée d’un nombre x positif
égale à 5, elle renvoie l’entier pair le trunc(x) Fonction qui retourne la partie entière
plus proche de x
round(x,d) Retourne le réel le plus proche de x avec floor(x) Fonction qui retourne le plus grand
d chiffres après la virgule
entier inférieur à x
int(x) Fonction qui retourne la partie
ceil(x) Fonction qui retourne le plus petit
entière de x
entier supérieur à x
Module random ( from random import *)
En python Description
randint (a, b) Retourne un Entier int aléatoire dans [a,b]
Mme Ihsen MANSOUR Lycée Pilote de Nabeul
Pensée computationnelle et programmation 3ème & 4ème Scientifiques
3- Le type bool
Une variable avec ce type ne peut prendre que l’une des deux valeurs logiques possibles : (True ) et (False).
Exemples : a=True
Opérateurs logiques Opérateurs relationnels
and( & ), or ( | ), not, ^ (ouex en algo) <,>, <=, >=, == , !=
4- Le type str
Une chaine de caractères str: est une 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 = ")
NB : En python : c1 =’a’ # c1 est une variable de type str de taille (len) = 1 : une chaine composée d’un seul caractère
Quelques opérations de base sur les str en python
Nom_chaine[i] avec 0≤i≤len(ch)-1 accéder au caractère d’indice i dans la chaine nom_chaine
Nom_chaine[debut :fin] extraire les caractères de la chaine Nom_chaine compris entre l’indice debut et
l’indice fin-1 (par défaut pas =1)
On peut fixer le pas d’avancement Nom_chaine [debut :fin :pas]
Si on veut inverser une chaine ch1 en python, on peut faire
ch2 = ch1[ : :-1] Inverser une chaine
chaine1+chaine2 : concatène les deux chaines
Chaine*k créer une chaine de caractères dans laquelle on répète la chaine k fois.
Ch= ch[ :d]+ch[f :] Effacer les caractères de la chaine ch compris entre les indices d et f-1
Opérateurs relationnels : NB : la comparaison des deux caractères (str avec len =1) en python se fait
<,>, <=, >=, == , != avec leur code ASCII.
NB : la comparaison de deux chaines se fait caractère par caractère selon
leurs codes ASCII.
Exemples :
T = "2 " > "A " T contient False
"e" in {"a","0","V","?","e","x","*"} signifie " e" appartient à l’ensemble (set)
formé par les caractères "a","0","V","?","e","x","*"
ord(c) in range (ord("0") ,ord("9")+1 ) ou bien ord("0") <= ord(c) <= ord("9") :
permet de tester si l’ordre du caractère c à 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
NB : Modifier un caractère d’une chaine en python :
ch ="abcde"
ch[2]="k" (interdit de faire ça :les chaine en python est un objet immutable en python :un
objet dont l'état ne peut pas être modifié après sa création. Une fois définie, vous ne pouvez
plus modifier un de ses éléments par une affectation)
Solution : ch=ch[:2]+"k"+ch[3:]
Les fonctions prédéfinies sur une str avec len =1 ou sur un caractère de la chaine Nom_chaine[i] :
Fonction python Rôle
ord(C) Renvoie le code ASCII de C.
chr(N) Renvoie le caractère dont le code ASCII est N.
Mme Ihsen MANSOUR Lycée Pilote de Nabeul
Pensée computationnelle et programmation 3ème & 4ème Scientifiques
Quelques fonctions prédéfinies sur les str (chaines) :
La méthode Syntaxe Rôle
len len ( chaine ) Détermine la longueur d’une chaine de caractères : le nombre de caractères
constituant la chaine
find Cherche et retourne la 1ère position de la chaine chaine1 dans la chaine de
Chaine2.find ( chaine1 )
caractères chaine2 de la gauche vers la droite ( retourne -1 si chaine1 n’existe
pas dans chaine2)
upper chaine. upper ( )
Convertit chaine en majuscule
str str ( nb )
Convertit une valeur numérique nb en une chaîne de caractères.
int int ( ch ) Convertit la chaîne de caractères ch en une valeur entière
float float ( ch ) Convertit la chaîne de caractères ch en une valeur réelle
isdigit Chaine. isdigit ( ) Retourne True si la chaine contient seulement des caractères chiffres
ou bien Ou
isdecimal Chaine. isdecimal ( )
5- Les tableaux array de la bibliothèque numpy
Initialisation (Déclaration) d’un vecteur en utilisant la fonction array :
Syntaxe1 : from numpy import array
from numpy import array T1=array( [int( )] *6)
T = array( [ Type_element( ) ] * Nbmax ) T2=array( [float( )] *n)
T3=array( [bool( )] *10)
T4=array( [str( )] *20)
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 T4 est un Tableau de 20 caractères (chaines de len =1) initiali-
caractères et éviter que chaque case sés à chaine vide ('')
contienne uniquement le premier caractère
de la chaîne saisie, on peut procéder comme from numpy import *
T5=array( [str( )] *n, dtype=object)
suit :
# T5= array([str] *n )
o ajouter "dtype = object" à la déclaration,
o ou bien supprimer les parenthèses T5 est un Tableau de n chaines de caractères initialisés à chaine vide ('')
après le "str".
Syntaxe2 : import numpy as np
T1=np.array([0]*6,dtype='int')
import numpy as np T2=np.array([0]*6)
T=np.array( [valeur]*nmax,dtype='type' ) T3=array( [0 for i in range (6)], int)
T4=np.array([0]*n,float)
V1=array([ʺʺ]*n )
La valeur entre [ ] est la valeur ini-
V2=array([ʺʺ]*n , dtype=object)
tiale de toutes les cases du tableau.
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 initiale-
ment des chaines vides('')
V3, V4 : Tableau de n chaines de longueur maxi-
male égale à 20 caractères
Mme Ihsen MANSOUR Lycée Pilote de Nabeul
Pensée computationnelle et programmation 3ème & 4ème Scientifiques
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
B. Structures de contrôle simples
En python, le type d’une variable est dynamique :
Affectation Var = valeur
Une variable peut changer de type durant
Var = expression
l’exécution d’un même programme. Python
Var1 = nom_var2 identifie le type de la variable suivant la valeur
affectée.
Lecture var1= input(‘message’) #input () retourne toujours une valeur de type str
Var2=int(input('saisir un entier ')) # lire un entier
Var3 = float(input('saisir un réel \n ')) # lire un réel
\n : C'est une séquence d'échappement permettant un saut de ligne
Affichage print (Var) - La fonction print() affiche les arguments qu'on lui passe entre
print( expression) parenthèses et fait un retour à la ligne.
print ('message ' ) - Si toutefois, on ne veut pas faire un retour à la ligne, on peut
print ('message ' , VAR) utiliser l'argument par le “mot-clé “ end
Exemple :
print('nom = ', nom, end ='|')
print ('prenom = ', prenom)
C. Structures de contrôle conditionnelles
if simple réduite if simple complète if généralisée match …case ( à partir de python 3.10)
if condition : if condition : if condition1 :
instr 1 Traitemet1 Traitemet1
instr 2 else: elif condition2 :
….. Traitement2 Traitement2
instr n elif condition3 :
Traitement3
………………………….
elif condition N-1 :
Traitement N-1
else:
Traitement N
D. Structures de contrôle itératives
Structure itérative complète Structure itérative à condition d’arrêt
for compteur in range (Deb, Fin+1, pas) : [initialisations]
Traitement while condition_entrée :
Traitement
Mme Ihsen MANSOUR Lycée Pilote de Nabeul
Pensée computationnelle et programmation 3ème & 4ème Scientifiques
E. La programmation modulaire : Les sous programmes (Modules)
Mode de passage des
Les Fonctions avec return : paramètres (par
Déclaration :
valeur vis à vis par
def Nom_fonction (pf1 ,pf2 ,…) : adresse :
pf : paramètre formel
Bloc d’instructions En python, les
return expression paramètres de type
tableau (array) sont
par défaut passés par
L’appel : Dans une expression pe : paramètre effectif référence (adresse,
Objet=Nom_fonction(pe1,pe2,…,peN) variable).
Toute modification
du pf entraine
automatiquement la
modification du pe lors
Les fonctions sans return : de l’appel du module.
Déclaration :
En python, les
def Nom_module (pf1 ,pf2 ,…) : pf : paramètre formel paramètres de types
immutables (int,
Bloc d’instructions
float, bool, str) sont
par défaut passés par
L'appel:
pe : paramètre effectif valeur.
Toute modification
Nom_module(pe1,pe2,…,peN)
du pf n’entraine pas
la modification du pe
lors de l’appel du
module.
Portée des variables (locales et globales)
Toute variable déclarée au sein d’un module a une portée locale.
Toute variable déclarée au sein d’un module précédée par le mot clé global a une portée globale. Par
conséquent, elle ne devra pas figurer parmi les paramètres de ce module.
F. 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)
Mme Ihsen MANSOUR Lycée Pilote de Nabeul
Pensée computationnelle et programmation 3ème & 4ème Scientifiques
File New Widget, Insérer les widgets, faire la mise en forme, enfin renommer les objets, puis enregistrer le
fichier sous le nom: interface.ui 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’uti-
lisateur.
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é.
Mme Ihsen MANSOUR Lycée Pilote de Nabeul
Pensée computationnelle et programmation 3ème & 4ème Scientifiques
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 .
Etape 2-b Utilisation des widgets dans un script Python :
Modifier le texte d’un label : fen.titre.setText(' Un Titre ')
Récupérer le texte d’un label dans une variable : ch=fen.titre.text()
Effacer le contenu d’un label : fen.titre.clear()
Mettre un nombre dans d’un label : fen.titre.setNum(18.5)
Voir plus: https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/QLabel.html
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.returnPressed.connect(traitement2)
https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/QLineEdit.html
Mme Ihsen MANSOUR Lycée Pilote de Nabeul
Pensée computationnelle et 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() :
………
fen.bouton.clicked.connect(traitement3)
Remarque 1: Il y a aussi les signaux pressed() et released()
Remarque: On peut fermer l’application en utilisant :
fen.bouton.clicked.connect(fen.close)
On peut effacer le contenu du champ de saisie:
fen.bouton.clicked.connect(fen.champ_saisie.clear)
Voir plus: https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/QPushButton.html
Mme Ihsen MANSOUR Lycée Pilote de Nabeul