Python TP
Python TP
1. Introduction à Python
- Qu'est-ce que Python
- Installation et configuration
- Les différences entre Python 2 et 3
2. Les fondamentaux de Python
- Les types de données : entiers, flottants, chaînes de caractères
- Les opérateurs arithmétiques, de comparaison, d'assignation et de logique
- Les structures de contrôle de flux : if-else, for, while
- Les fonctions : définition, arguments et valeur de retour
Introduction
Le langage de programmation Python a été créé en 1989 par Guido van Rossum, aux Pays-Bas. Le nom
Python vient d’un hommage à la série télévisée Monty Python’s Flying Circus dont G. van Rossum est fan. La
première version publique de ce langage a été publiée en 1991. La dernière version de Python est la version
3. Plus précisément, la version 3.12 a été publiée en 10 Octobre 2023.
Il est multiplateforme.
Il est gratuit.
C’est un langage de haut niveau. Il demande relativement peu de connaissance sur le fonctionnement
d’un ordinateur pour être utilisé.
C’est un langage interprété. Un script Python n’a pas besoin d’être compilé pour être exécuté,
contrairement à des langages comme le C ou le C++.
Il est orienté objet. C’est-à-dire qu’il est possible de concevoir en Python des entités qui miment celles
du monde réel (une voiture, un conducteur, une piste, etc.) avec un certain nombre de règles de
fonctionnement et d’interactions.
Enfin, il est très utilisé en sience de données et plus généralement en analyse de données.
</ul> Toutes ces caractéristiques font que Python est désormais enseigné dans de nombreuses
formations, depuis l’enseignement secondaire jusqu’à l’enseignement supérieur.
Par ailleurs, il faut s’assurer de la compatibilité entre les versions des différentes packages qu’on a à
télécharger.
Anaconda est une distribution scientifique de Python : c’est-à-dire qu’en installant Anaconda, vous
installerez Python, Jupyter Notebook et des dizaines de packages scientifiques, dont certains indispensables
à l’analyse de données !
JupyterLab
JupyterNotebook
Spyder
Pycharm
VSCode
Orane 3 APP
RStudio
Anaconda powerShell
Avec la console Anaconda prompt : sur la barre de recherche, taper “Anaconda prompt” puis taper «
jupiter notebook” :
Méthode directe : taper directement dans la barre de recherche : “Anacondanavigator”. Une fois que
l’interface est affichée, cliquez sur launch de l'application Jupyter.
Version de python
In [1]: from platform import python_version
python_version()
'3.9.12'
Out[1]:
Les Calculs
Une des premières fonctionnalités d'un interpréteur est de faire des calculs:
In [2]: 1+2
3
Out[2]:
In [3]: 10 -2
8
Out[3]:
In [4]: 5*6
30
Out[4]:
Les commentaires
Les commentaires peuvent être utilisés pour expliquer le code pour plus de lisibilité.
In [6]: # Commentaire
# sur plusieurs
# lignes
val = 10
In [7]: '''
Commentaire
sur plusieurs
lignes
'''
val = 10
In [8]: """
Commentaire
sur plusieurs
lignes
"""
val = 10
Identifiant
Un identifiant est un nom donné à des entités telles que des classes, des fonctions, des variables, etc. Il
permet de différencier une entité d'une autre.
L'identifiant :
In [9]: 1var = 10
Input In [9]
1var = 10
^
SyntaxError: invalid syntax
In [10]: val@ = 35
Input In [10]
val@ = 35
^
SyntaxError: invalid syntax
Input In [11]
import = 125
^
SyntaxError: invalid syntax
Python 3.9 contient 36 mots clés réservés. Ces mots ne peuvent pas être utilisés comme identifiant:
['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'br
eak', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'fr
om', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'r
aise', 'return', 'try', 'while', 'with', 'yield']
Les Variables
Une variable est une zone de la mémoire de l’ordinateur dans laquelle une valeur est stockée. Aux yeux du
programmeur, cette variable est définie par un nom (identificateur), alors que pour l’ordinateur, il s’agit en
fait d’une adresse, c’est-à-dire d’une zone particulière de la mémoire.
2
Out[13]:
7
Out[14]:
In [15]: #Pour déclarer plusieurs variables et leur affecter une même valeur
a = b = c = 1
(1, 1, 1)
Out[15]:
In [16]: # Pour déclarer plusieurs variables et leur affecter des valeurs différentes
d, e, f = 1, 2, "bonjour"
d,e,f
(1, 2, 'bonjour')
Out[16]:
Le langage python possède un certain nombre de types de variables déjà définis ou types fondamentaux à
partir desquels il sera possible de définir ses propres types. Voici une liste de type de variable:
Les integer ou nombres entiers : comme son nom l'indique un entier est un chiffre sans décimales.
Les strings ou chaine de caractères : pour faire simple tout ce qui n'est pas chiffre.
Booléen : bool
Binaires : bytes, bytearray, memoryview
</b>
ϵZ Int 12,+20,-20
In [17]: x=2.5
type(x)
float
Out[17]:
In [18]: x = 'bonjour'
type(x)
str
Out[18]:
In [19]: x = True
type(x)
bool
Out[19]:
In [20]: x= 5 + 3j
type(x)
complex
Out[20]:
In [21]: x = b'Python'
type(x)
bytes
Out[21]:
Pour tester si une valeur est de certain type en utilise la fonction isinstance()
True
Out[22]:
Interaction : Lecture/Ecriture
En Python, nous utilisons pour la lecture et l'écriture les fonctions :
Pour afficher, on utilise la fonction print().
Pour récupère ce qu'a tapé l'utilisateur sur le clavier, enutilise la fontion input(). cela renverra une chaîne
en sortie
Généralement, les codes Python réels n'ont pas besoin de lire les entrées du clavier
Salam Python
Salam---comment vas-tu?
In [26]: x = 3.95
print("x =", x, type(x))
In [27]: x = int(3.5)
y = float(3)
z = int("3")
print("x:", type(x), " y:", type(y), " z:", type(z))
Opérateurs de base
La liste des opérateurs qui s’appliquent aux nombres réels et entiers suit. Les trois premiers résultats << >>,
| et & s’expliquent en utilisant la représentation en base deux. 8 << 1 s’écrit en base deux 100 << 1 = 1000,
ce qui vaut 16 en base décimale : les bits sont décalés vers la droite ce qui équivaut à multiplier par deux. De
même, 7 & 2 s’écrit 1011 & 10 = 10, qui vaut 2 en base décimale. Les opérateurs <<, >>, |, & sont des
opérateurs bit à bit, ils se comprennent à partir de la représentation binaire des nombres entiers.
// division entière, le résultat est de type réel si l’un des nombres est réel x = y // 3
% reste d’une division entière (modulo) x=y%3
In [30]: x = 8 << 1
x
16
Out[30]:
In [31]: bin(x)
'0b10000'
Out[31]:
In [32]: 11 & 2
2
Out[32]:
In [33]: 2^3
1
Out[33]:
In [34]: x = 10**3
x
1000
Out[34]:
In [35]: x = 10 / 3
x
3.3333333333333335
Out[35]:
In [36]: x = 10 // 3
x
3
Out[36]:
In [37]: x = 10 % 3
x
1
Out[37]:
int int(0b10) 2
97 (code ASCII
ord ord('a')
de a)
chr chr(97) 'a'
In [38]: ord('a')
97
Out[38]:
In [39]: hex(12)
'0xc'
Out[39]:
In [40]: ord('C')
67
Out[40]:
In [41]: chr(67)
'C'
Out[41]:
Indentation
Une indentation représente un ou plusieurs espaces au début d'une ligne de code.
Il est recommandé avec Python d'indenter son code avec une tabulation (équivalent à 4 espaces).
L'indentation est primordiale avec Python car elle sert à déterminer les blocs qui constituent votre code là
où d'autres langages privilégient par exemple les accolades ({ }) pour spécifier ces blocs.
Si l'indentation n'est pas correcte, nous nous retrouverons avec IndentationError Erreur.
In [42]: if(5>2):
print("5 est supérieur que 2")
In [43]: if(5>2):
print("5 est supérieur que 2")
Input In [43]
print("5 est supérieur que 2")
^
IndentationError: expected an indented block
In [44]: x = 2
if x == 2:
print (" Le test est vrai !")
In [45]: x = 2
if x == 2:
print (" Le test est vrai !")
else :
print (" Le test est faux !")
In [46]: a = 5
if a > 5:
a = a + 1
print(a)
elif a == 5:
a = a + 1000
print(a)
else:
a = a - 1
print(a)
1005
Boucle FOR
Quand on sait combien de fois doit avoir lieu la répétition, on utilise généralement Boucle bornée for.
La boucle for permet de faire des itérations sur un élément, comme une chaine de caractères par exemple
ou une liste .
S
a
l
a
m
G
L
C
C
Range
la syntaxe de Range() :
In [49]: x = range(6)
for n in x:
print(n)
0
1
2
3
4
5
In [50]: x = range(3, 6)
for n in x:
print(n)
3
4
5
3
5
7
9
11
13
15
17
19
girafe
tigre
singe
souris
Si la condition est fausse au départ, le corps de la boucle n’est jamais exécuté. Si la condition reste toujours
vraie, alors le corps de la boucle est répété indéfiniment.
In [54]: i = 0
while i < 4:
print("i a pour valeur", i)
i = i + 1
i a pour valeur 0
i a pour valeur 1
i a pour valeur 2
i a pour valeur 3
debut iteration 0
bonjour
fin iteration 0
debut iteration 1
bonjour
fin iteration 1
debut iteration 2
bonjour
apres la boucle
In [ ]: while True:
n = int(input("donnez un entier > 0 : "))
print("vous avez fourni", n)
if n > 0:
break
print("reponse correcte")
L’instruction continue permet de passer prématurément au tour de boucle suivant. Elle fait continuer sur la
prochaine itération de la boucle.
debut iteration 0
bonjour
debut iteration 1
bonjour
debut iteration 2
bonjour
fin iteration 2
debut iteration 3
bonjour
fin iteration 3
apres la boucle
SALAM PYTHON
quatrième forme
multi-lignes
très utile pour
la documentation
"L'eau vive"
Out[61]:
4
Out[63]:
'abc efg'
Out[64]:
'Salam Python'
Out[66]:
In [67]: str[0]
'S'
Out[67]:
In [68]: str[len(str)-1]
'n'
Out[68]:
In [69]: str[-1]
'n'
Out[69]:
In [70]: str[5]
' '
Out[70]:
In [71]: str[-5]
'y'
Out[71]:
In [72]: str[6:10]
'Pyth'
Out[72]:
In [73]: str[6:]
'Python'
Out[73]:
In [74]: str[:5]
'Salam'
Out[74]:
In [75]: str[2:12:2]
'lmPto'
Out[75]:
In [76]: str[::-1]
'nohtyP malaS'
Out[76]:
In [77]: #Les méthodes .lower() et .upper() renvoient un texte en minuscule et en majuscule respe
x = "girafe "
x.upper ()
Out[77]: 'GIRAFE '
In [78]: 'TIGRE'.lower ()
'tigre'
Out[78]:
'Girafe '
Out[79]:
'Girafe '
Out[80]:
istitle() : retourne True si seule la première lettre de chaque mot de la chaîne est en majuscule.
isalnum(), isalpha(), isdigit() et isspace() : retournent True si la chaîne ne contient respectivement que
des caractères alphanumériques, alphabétiques, numériques ou des espaces.
startswith(prefix)et endswith(suffix) : testent si la sous chaîne définie par start et stop commence
respectivement par préfix ou finit par suffix.
lower(), upper(), capitalize() et swapcase() : retournent respectivement une chaîne en minuscule, en
majuscule, en minuscule commençant par une majuscule, ou en casse inversée.
expandtabs([tabsize]) : remplace les tabulations par tabsize espaces (8 par défaut).
center(width[, fillchar]), ljust(width[, fillchar]) et rjust(width[, fillchar]) : retournent respectivement
une chaîne centrée, justifiée à gauche ou à droite, complétée par le caractère fillchar (ou par l’espace par
défaut).
zfill(width) : complète ch à gauche avec des 0 jusqu’à une longueur maximale de width.
strip([chars]), lstrip([chars]) et rstrip([chars]) : suppriment toutes les combinaisons de chars (ou
l’espace par défaut) respectivement au début et en fin, au début, ou en fin d’une chaîne.
find(sub[, start[, stop]]) : renvoie l’index de la chaîne sub dans la sous-chaîne start à stop, sinon renvoie
-1. rfind() effectue le même travail en commençant par la fin. index() et rindex() font de même mais
produisent une erreur (exception) si la chaîne n’est pas trouvée.
replace(old, new[, count]) : remplace count instances (toutes par défaut) de old par new.
split(seps[, maxsplit]) : découpe la chaîne en maxsplit morceaux (tous par défaut). rsplit() effectue la
même chose en commençant par la fin et striplines() effectue ce travail avec les caractères de fin de ligne.
join(seq) : concatène les chaînes du conteneur seq en intercalant entre chaque élément la chaîne sur
laquelle la méthode est appliquée.
(True, False)
Out[81]:
In [84]: s.zfill(20)
Out[84]: '00000000cHAise basSe'
In [85]: s.strip('ce')
'HAise basS'
Out[85]:
Exercice
Ecrire un programme Python qui lit une chaîne de caractères CH au clavier et qui compte les occurrences
des lettres de l'alphabet en ne distinguant pas les majuscules et les minuscules. Utiliser un tableau ABC de
dimension 26 pour mémoriser le résultat.
Exemple :
Entrez une ligne de texte (max. 100 caractères) :
master
La chaîne "master" contient :
1 fois la lettre 'a'
1 fois la lettre 'e'
1 fois la lettre 'm'
1 fois la lettre 'r'
1 fois la lettre 's'
1 fois la lettre 't'
In [87]: alphabet="abcdefghijklmnopqrstuvwxyz"
ch=input("donner une valeur ")
res=[]
for i in range(len(alphabet)):
res.append(0)
for j in range(len(ch)):
if(alphabet[i]==ch[j]):
res[i]=res[i]+1
res
2. Liste
Une liste est une collection ordonnée et modifiable d’éléments éventuellement hétérogènes.
Les éléments d'une liste sont séparés par des virgules, et entourés de crochets.
Exemples :
In [88]: l1 = [1,2,3,4,5,6] # e n t i e r s
l1
[1, 2, 3, 4, 5, 6]
Out[88]:
<class 'list'>
6
Out[97]:
In [98]: L[-2]
98
Out[98]:
In [99]: L[1:4]
[14, 10, 6]
Out[99]:
In [100… L[:3]
[21, 14, 10]
Out[100]:
In [101… L[-3:]
[6, 98, 5]
Out[101]:
In [102… L[:]
[21, 14, 10, 6, 98, 5]
Out[102]:
Ajouter, supprimer et modifier des éléments
In [103… List =['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight']
# Ajouter un élément à la fin de la liste
List.append('nine')
List
['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten']
Out[104]:
In [105… List.insert(1,'ONE')
List
['one',
Out[105]:
'ONE',
'two',
'three',
'four',
'five',
'six',
'seven',
'eight',
'nine',
'ten']
In [106… List.remove('ONE')
List
['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten']
Out[106]:
In [107… List.pop()
List
In [109… List[0] = 0
List[1] = 1
List[2] = 2
List
In [110… List.reverse()
List
In [111… List.clear()
List
[]
Out[111]:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Input In [112], in <cell line: 2>()
1 del List
----> 2 List