Chapitre N°2-Ver1 - La Programmation en Python Instructions de Base
Chapitre N°2-Ver1 - La Programmation en Python Instructions de Base
FONDEMENTS EN
INFORMATIQUE ET
ALGORITHMIQUE
1)Langages de programmation
a) Langages machine
E N S A - M A R R A K E C H
b) Langages de bas niveau/de haut niveau (évolués)
c) Présentation de langage python
d) Utilisation de langage python
a) Instructions d’entrée/sortie
1
02/10/2024
C ’ E ST Q U O I L A P R O G R A M M ATI O N ?
E N S A - M A R R A A K E C H
faire, en sachant qu'elle ne peut pas
véritablement comprendre un
langage humain, mais seulement
effectuer un traitement automatique
sur des séquences de caractères. 3
• Donc la programmation est une phase
qui suit la phase d’algorithmique, elle sert
la traduction (codage) de notre
algorithme (langage humain) en un
programme (langage machine).
E N S A - M A R R A A K E C H
ordinateurs travaillent sur des données binaires
0/1.
• Alors, le binaire (fig2) est difficilement lisible,
Fig2 4
donc on utilise très souvent la représentation
hexadécimale.
• Les langages assembleurs (fig3) ou langages du
Fig3
bas niveau : sont les plus proches de ce que
comprennent les processeurs, ils représentent les
opérations exécutables et leurs options sous
forme textuelle compréhensible.
2
02/10/2024
LANGAGES ÉVOLUÉS
E N S A - M A R R A A K E C H
langages plus évolués avec des syntaxes plus
en plus visible pour l’homme.
• Voici quelques exemples de langages de
programmation (dont vous avez
probablement déjà entendu parler) : 5
• Quelques dates :
P R É S E N TAT I O N D E L A N G A G E
E N S A - M A R R A A K E C H
est un langage open source, géré par la
« PYTHON Software Fondation ».
• Multiplateformes et multifonctions : le
programme sera souvent portable, on peut le
faire fonctionner sans aucune modification sur 6
des machines ou des systèmes d'exploitation
différents (versus programme de bas niveau).
• Est un langage interprété et non compilé :
signifie que le code est lu ligne par ligne par
l'interpréteur, et exécuté en temps réel.
3
02/10/2024
U T I L I S AT I O N D E L A N G AG E
E N S A - M A R R A A K E C H
environnement de développement (IDE : Interactive
Development Environment),
• Dans tous les cas, il y a deux façons de travailler avec
python :
1. L'interpréteur python appelé aussi Shell : Il 7
permet de saisir des instructions qui sont
immédiatement exécutées, comme sur une
calculatrice.
2. L'éditeur de programmes (ou éditeur de
scripts) : Le programme (aussi appelé script)
devra être enregistré dans un fichier texte
d'extension .py pour qu'il soit reconnu comme
un programme python.
1)Langages de programmation
a) Langages machine
E N S A - M A R R A K E C H
b) Langages de bas niveau/de haut niveau (évolués)
c) Présentation de langage python
d) Utilisation de langage python
4
02/10/2024
I N S T R U C T I O N , D O N N É E E T VA R I A B L E ?
E N S A - M A R R A K E C H
Y=X+7
(numériques, texte, etc) qui peuvent
print(Y/X)
être saisies par l'utilisateur ou Z=0
restituées d'un calcul de l'ordinateur, Z=Y+X
etc. • La mémoire vive (RAM) : 9
E N S A - M A R R A K E C H
• Son identifiant : c’est le nom de la donnée, Identifiant : B
composé des alphanumériques (A/a à Z/z, 0 à 9 Type : réel
Valeur : 5,0
et _), cet identifiant fait référence dans le
programme à l’adresse de la case mémoire de la
variable. 10
• Son type : c’est la nature de la donnée, peut-être : RAM
10
5
02/10/2024
En partie par obligation liée au langage, et en partie par convention pour l'enseignement, un nom
de variable doit :
E N S A - M A R R A K E C H
• Un nom de variable est une séquence de lettres (a → z , A → Z) et de chiffres (0 → 9), et aussi
le tiret _ avec la touche 8.
• Débuter par une lettre ou tiret _,
11
• La casse est significative (maj ≠ MAJ)
• Mots clés du langage interdits (if, else, for, def,...), voir la diapositive suivante.
Une constante est une variable dont la valeur ne doit pas changer au cours de l'exécution du
programme. Par convention, on la nomme en MAJUSCULES.
11
FA I T E S AT T E N T I O N AU X M OTS R É S E R V É S !
• Les mots clés réservés du langage ne peuvent pas être utilisés comme nom de variables (car ils
sont déjà réservés par le langage). Ce sont :
E N S A - M A R R A K E C H
12
Attention : Le langage Python fait la distinction entre les majuscules et les minuscules (distinction
de casse), de même qu'entre les caractères avec et sans accent.
12
6
02/10/2024
E X E R C I C E D ’A P P L I CAT I O N N ° 1
E N S A - M A R R A K E C H
1 del
2 Ligne
3 general
4 CP 1 13
5 1erCP
6 année
7 global
8 la_classe
9 Hello word
10 def
11 gmail@com
13
TYPES DE BASE
PYTHON dispose d'un certain nombre de type de données. Nous allons ici voir les principaux.
L'instruction type (maVariable) permet de connaître le type de maVariable.
E N S A - M A R R A K E C H
• Les booléens (bool): Les booléens comme dans tout langage peuvent prendre deux
valeurs uniquement en PYTHON sont True et False.
14
7
02/10/2024
TYPES DE BASE(SUITE)
• Les réels (float) : On utilise le point pour indiquer qu'il s'agit d'un float (par exemple: a =
3. ou a = 3.0 ). Ou bien une écriture scientifique xEn (ou xen) dont x est un int ou float et
E N S A - M A R R A K E C H
n est un int (par exemple : x = 3 . 1 2 e - 3 o u x = 1 e 6 ) .
15
R É CA P I T U L AT I O N S U R L E S T Y P E S D E B A S E
E N S A - M A R R A K E C H
16
Notez bien : On peut toujours vérifier le type d’une variable ou d’une valeur avec l’instruction “type” :
>>>type(10.5)
<class 'float'>
>>>type("10.5")
<class 'str'>
16
8
02/10/2024
D É C L A R AT I O N / I N I T I A L I S AT I O N
• Dans la plupart des langages de
• Par exemple, en le langage C, on doit écrire :
programmation, pour pouvoir utiliser une
int x ; // déclaration de x comme un nombre
E N S A - M A R R A K E C H
variable, il faut procéder en deux étapes :
entier
a. Déclarer la variable avec un certain
x = 4 ; // affectation de la valeur 4 à la variable
type. x, grâce à l'opérateur d'affectation
b. Lui affecter une valeur. x = 10 ; // réaffectation d'une nouvelle valeur 17
(ici, 10) à cette même variable x.
• En revanche, en Python, il n'est pas
• On ne peut alors affecter que des entiers à la
nécessaire de déclarer explicitement les
variable x. Une instruction comme :
variables en précisant leur type. C’est
l’interpréteur qui s’en charge lors de x = 12.5 ;
l’attribution d’une valeur à notre variable. provoque une conversion de 12.5 (float) en 12
➔C’est le typage dynamique. (int) avec perte d’information après la virgule.
Exemple : y=3j # ici y est de type complex
17
✓ Les opérations possibles sur une variable dépendent intégralement de >>> a+5
E N S A - M A R R A K E C H
son type. TypeError: can only concatenate str (not
"int") to str
✓ Les conversions implicites de types afin de réaliser certaines opérations >>>int(a)+5
sont interdites sauf entre types numériques (int, float et complex). 20
>>> a+str(5)
• En revanche, on peut changer le type d'une donnée en l'indiquant entre
‘155’ 18
parenthèses, précédée du nom du nouveau type souhaité : nomType(data).
>>> int(3.7)
18
9
02/10/2024
LE TR AN ST Y PAGE DE DO N N É ES
Conversions Contraintes
E N S A - M A R R A K E C H
int(data) data est un décimal (qui sera tronqué) ou une chaîne d’un nombre entier
int(data,base) data est une chaîne d’un type numérique codé dans une base
data est un nombre ou un booléen ou une chaine qui vaut False uniquement si
bool(data)
data vaut nombre 0 ou son équivalence comme une chaine vide: "" ou ‘’
eval(data) data est une chaîne qui sera évaluée comme une expression en Python
19
E X E R C I C E D ’A P P L I C A T I O N N ° 2
Complétez les vides par les résultats à afficher après l’exécution de chaque instruction :
>>> x = 666.6
E N S A - M A R R A K E C H
>>> a = “0.4+1j” #ici 1 à côté de j est indispensable
>>> y = int(x)
>>> y
……………………………….. 20
>>> eval('y+111’)
………………………………..
>>> int('10101',2)
………………………………
>>>z=x+ complex(a)
…………………………….
Remarque : str (str), bool(bool) , float(float) et int(int) sont valides mais ne sont pas pratiques.
20
10
02/10/2024
1)Langages de programmation
a) Langages machine
E N S A - M A R R A K E C H
b) Langages de bas niveau/de haut niveau (évolués)
c) Présentation de langage python
d) Utilisation de langage python
a) Instructions d’entrée/sortie
b) Les expressions du calcul (Les opérateurs)
c) Priorité des opérateurs
d) Manipulation des chaines de caractères (str).
21
INSTRUCTIONS D’ENTRÉE/SORTIE
L’instruction de sortie: Pour réaliser un Exemple :
affichage sur la console à partir d’un script
• sous l’interpréteur on écrit
E N S A - M A R R A K E C H
(programme), et pour réaliser des affichages plus
sophistiqués on aura besoin de l’instruction >>>a = 5 # affectation directe à la variable
“print” avec la syntaxe suivante :
>>> b = float(a) #cast en float
print(expr_1,expr_2,...,sep=‘ ‘,end=‘\n’)
>>>a, b #affichage des variables
• expr_1,expr_2,... : sont soit des chaînes, 22
soit des résultats de calculs convertis en chaînes, • Son équivalence dans un script ( sous
soit des variables dont on souhaite afficher la l’éditeur) est:
valeur.
a=5
• sep=‘ ‘: le séparateur entre eux, dans ce cas b = float(a)
c’est l’espace. C’est un paramètre optionnel qui
vaut ‘ ‘ par défaut. print("La valeur de a est", a, " et b est",b)
22
11
02/10/2024
INSTRUCTIONS D’ENTRÉE/SORTIE
E N S A - M A R R A K E C H
l'utilisateur au clavier. Elle renvoie une chaîne de on la demandera à l’utilisateur :
caractères. Si on souhaite obtenir un nombre il
faudra la convertir en type désiré. #lecture de a sous forme d’une chaine de caractère:
a = input("entrez votre nombre")
nomVar = input(expression)
#conversion de a en un entier : 23
• expression : est facultative, elle sert juste à
afficher un message d’interaction avec l’utilisateur a = int(a) # ou bien a=eval(a)
sur la ligne de saisie . #conversion de a en un float dans b :
• Ce que va saisir l’utilisateur sera affecté sous forme b= float(a)
de chaîne de caractère à la variable nomVar. Donc print("La valeur de a est", a, " et b est",b)
il faut deviner une conversion explicite de cette
variable. Notez bien: pour commenter un code on utilise le
caractère ‘#’ suivi de votre commentaire sur ligne.
23
L’ O P É R AT E U R D ’A F F E C TAT I O N :
• Exemples :
• Rappelons qu'en algorithmique, l'opérateur d'affectation est représenté >>> y = 1 - 6
>>> y
E N S A - M A R R A K E C H
par une flèche gauche : x ← expression; et en python x=expression
-5
• expression peut être : une valeur, une autre variable, une expression ou >>> z = y * 5
>>> t
1) évaluation (c'est à dire calcul) de l'expression située à droite de
0.2
l'opérateur d'affectation (selon des règles de priorité de calcul
>>> x = 4
correspondant au type des données concernées). >>> x
4
2) rangement du résultat de cette évaluation dans la variable
>>> x = x + 100
(association du nom à la donnée), qui est obligatoirement la partie >>> x
située à gauche de l'opérateur d'affectation. 104
24
12
02/10/2024
A F F E C TAT I O N M U LT I P L E
O P É R AT E U R S D ’ I N C R É M E N TAT I O N / D É C R É M E N TAT I O N
• Exemples :
• Affectation multiple ou parallèle : >>> x,y,z= 1,6.0, 3j
E N S A - M A R R A K E C H
var1, var2, ... = val1, val2, ... >>>x,type(x)
(1, <class ‘int’>)
• Incrémenter une variable : signifie lui ajouter une valeur
>>>y,type(y)
numérique (en général, la valeur 1).
(6.0, <class ‘float'>)
x = x + 1 # on incrémente x de 1 >>>z,type(z) 25
x += 1 # l'opérateur += permet de faire la même chose (3j, <class 'complex’>)
• Décrémenter une variable : signifie lui ôter une valeur >>> t+=1
numérique (en général, la valeur 1). NameError: name 'T' is not defined
>>> x+ = -1
x = x - 1 # on décrémente x de 1
>>> x
x -= 1 # l'opérateur -= permet de faire la même chose
0
Notez bien : pas de x++ ou x-- comme dans certains langages (C, C++, >>> z-=1
Java, …)
>>> z
-1+3j
25
INSTRUCTIONS DU CALCUL
L E S O P É R AT E U R S A R I T H M É T I Q U E S
E N S A - M A R R A K E C H
0.75
* : multiplication >>> 1/3
>>> 2**4
// : quotient d'une division entière 26
16
@ : multiplication matricielle
>>> 9/2
** : élévation à la puissance 4.5
>>> 9//2
% : reste d'une division entière (modulo)
4
+=,-=,... : combinaison d’opérateur arithmétique avec
>>> 9%2
affectation (x/=5 est équivalent à x=x/5).
1
26
13
02/10/2024
INSTRUCTIONS DU CALCUL
L E S O P É R AT E U R S A R I T H M É T I Q U E S
E N S A - M A R R A K E C H
16.0
opérateurs additifs + et -. Cela signifie, par exemple, que l'expression a * b + c
>>> 2**3.0
exprime une addition (dont le premier terme est le produit a * b).
8.0
• Si les deux opérandes des opérations +, -, *, ** sont entiers (resp. réels) le >>> 13 / 4
>>> 13 // 4
• Si un des deux opérandes est réel, le résultat est réel.
3
• Le résultat de l’opération / est toujours un réel. >>> 13 % 4
1
• Pour l’opération //, si l’un des deux opérandes est un réel, le résultat est la partie
>>> 13 // 4.6
entière du quotient de la division réelle.
2.0
27
INSTRUCTIONS DU CALCUL
LES OPÉRATEURS DE COMPARAISON ET LES BOOLÉENS
• Exemples :
< > <= >= == !=
>>>a=5
E N S A - M A R R A K E C H
inférieur sup inférieur ou égale sup. ou égale égale différent
>>>b=sin(a)
>>>a,b
• Les deux opérateurs : is, is not pour la comparaison d’identité (même objet en
(5, -0.9589242746631385)
mémoire)
>>>a<b
• Le résultat d'une comparaison comme a == b est de type booléen ; ce type ne 28
False
possède que deux valeurs, False (faux) et True (vrai).
>>>a>b
Notez bien : Le résultat d’une expression autre que la comparaison donnera lieu à une True
>>>c is a
1. l’expression sera tenue pour False les valeurs : None, le zéro de n'importe quel type
True
numérique (0, 0L, 0.0), la chaine de caractères vide et toute structure de données vide
>>>c=sin(a)
(liste, ensemble, table associative, etc.)
>>>c==a
2. Toute autre valeur sera tenue pour True.
False
28
14
02/10/2024
INSTRUCTIONS DU CALCUL
LES OPÉRATEURS DE COMPARAISON ET LES BOOLÉENS
• Exemples :
> < <= >= == !=
E N S A - M A R R A K E C H
>>>a=5
inférieur sup inférieur ou égale sup. ou égale égale différent
>>>b=5.0
>>>a,b
• La règle du plus fort vaut aussi pour les comparaisons : les
(5,5.0)
deux opérandes sont amenés (convertis) à un type commun
29
avant l'évaluation de la comparaison. >>>a==b
True
• Conformément à l'habitude répandue, la priorité des
opérateurs de comparaison est inférieure à celle des >>>c=a
opérateurs arithmétiques. Ainsi, l'expression a == b + c signifie >>>c==a
bien : a == (b + c). True
>>>a==c+b
False
29
INSTRUCTIONS DU CALCUL
LES OPÉRATEURS LOGIQUES ET LES BOOLÉENS
E N S A - M A R R A K E C H
not (négation) and (conjonction) or (disjonction)
a or b est vraie si et seulement si
not a est vraie si et a and b est vraie si et seulement si
au moins une deux expressions a,
seulement si a est fausse a et b sont toutes deux vraies 30
b est vraie
• Notez bien : les opérateurs and et or sont « optimisés » de la manière que dans une expressions le premier
terme « protège » le second comme dans l’exemple suivant :
30
15
02/10/2024
Operateurs Description
Définition d'une liste, d'un tableau et d'un set ou d'un
(),[],{}
dictionnaire
**
E N S A - M A R R A K E C H
Opérateur d'exponentiation
<,<=,>,>=,==,!=,in,not in,is, is
Comparaison
not
and « ET » booléen
or « OU » booléen
=
+= -= *= **= Affectation et Opérateurs
/= //= @= %= d'affectations combinés
<<= >>= &= ^= |=
31
E X E R C I C E D ’A P P L I C A T I O N N ° 3
E N S A - M A R R A K E C H
1. D’afficher True si un nombre entier n est pair False si impair
2. D’afficher True si un nombre n est diviseur au même temps
de deux autres nombres x et y False sinon.
32
3. D’afficher True si le produit de deux variables a et b est
positif ou False si négatif sans calcul effectif de produit
4. D’afficher True si un nombre N est multiple d’un des
nombres x et y données
32
16
02/10/2024
MA N IP U LAT IO N D ES C HA IN ES D E C A R AC T ÈR ES ( ST R ) :
E N S A - M A R R A K E C H
• Affichage d’une chaine de caractères : print(ch)
• Accès à un caractère d’une chaine : ch[indice] ( En Python, les indices commencent de 0)
• Pour accéder aux caractères à la fin d'une chaine il est commode d'employer des indices
négatifs, alors :
33
• chaine[-1] est le dernier caractère
• chaine[-2] est l’avant dernier caractère
• ….
• chaine[debut:fin] : renvoi les caractères à partir de debut jusqu’à fin-1. si début et/ou fin ne
sont pas renseignés (chaine[:]) alors il renvoi de 0 jusqu’au dernier élément de la chaine
33
E X E R C I C E D ’A P P L I C A T I O N N ° 4
Si on déclare la commande :
Commande Python Résultat
E N S A - M A R R A K E C H
>>> s = 'Bonjour’
Quels sont les résultats des commandes suivantes : 1- s[:]
2- s[2:]
3- s[:4]
34
4- s[-4]
5- s[-4:]
6- s[:-4]
7- s[3:100]
8- s[-100: 3]
9- s[3:1]
34
17
02/10/2024
Q U ELQ U ES O P ÉR AT EU RS SU R C HA IN ES D E C A R AC T ÈR ES:
• Exemples :
>>>ch1=‘ Bonjour ’
E N S A - M A R R A K E C H
>>>ch2=‘tout le monde’
>>>ch1+ ’ ‘+ch2
Bonjour tout le monde
>>>ch1*2 35
• En Python, il est possible de comparer deux chaînes de
caractères selon l'ordre alphabétique (appelé également BonjourBonjour
ordre lexicographique):
>>>nombre=‘20’
• ‘ Bonjour ’==‘ Bonjour ’ ➔renvoi True
• ‘ Bonjour ’>‘ Bontour ’ ➔renvoi False car ‘t’ >’j’ >>>nombre *5
• ‘ Bonjour ’!=‘ BONJOUR ’ ➔renvoi True
‘2020202020’
• Et aussi il est possible de savoir est ce que une sous-chaine
appartient ou non une autre chaine : >>>int(nombre)*5
• ‘ Bon ’ in ‘ Bonjour ’ ➔renvoi True 100
• ‘ Jour ’ not in ‘ Bonjour ’ ➔renvoi True car J majuscule
35
• Exemples :
>>>ch1=‘Bonjour ’
E N S A - M A R R A K E C H
>>>len(ch1)
7
>>>ord(‘a’), ord(‘A’),
(97, 65)
36
>>> chr(97), chr(65)
• Il existe des fonctions en Python qui permettent de passer des ('a', 'A')
caractères à leur code Unicode et vice-versa : >>>code=ord(ch1[0])
• ord(caractere) : Donne le code Unicode du caractère
>>>code
donné.
• chr(code) : Donne le caractère correspondant au code 66
Unicode donné. >>>chr(code)
'B'
36
18
02/10/2024
E N S A - M A R R A K E C H
AT T E N T I O N
37
37
19