0% ont trouvé ce document utile (0 vote)
5 vues51 pages

Cours Python (Chapitre1)

Le module 'Applications Intelligentes avec Python' vise à maîtriser Python pour le développement d'applications intelligentes, en se concentrant sur les librairies essentielles et les principes de l'intelligence artificielle. Le plan du cours couvre les fondamentaux de Python, la programmation orientée objet, l'analyse de données, et le développement d'applications intégrant des algorithmes de machine learning. Les étudiants réaliseront des travaux pratiques et des mini-projets pour appliquer leurs connaissances.

Transféré par

aslihaff
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)
5 vues51 pages

Cours Python (Chapitre1)

Le module 'Applications Intelligentes avec Python' vise à maîtriser Python pour le développement d'applications intelligentes, en se concentrant sur les librairies essentielles et les principes de l'intelligence artificielle. Le plan du cours couvre les fondamentaux de Python, la programmation orientée objet, l'analyse de données, et le développement d'applications intégrant des algorithmes de machine learning. Les étudiants réaliseront des travaux pratiques et des mini-projets pour appliquer leurs connaissances.

Transféré par

aslihaff
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
Vous êtes sur la page 1/ 51

Université Sultan Moulay Slimane

Ecole Supérieure de Technologie - Fkih Ben Salah

Module : Applications Intelligentes Avec Python

Filière : IDS, Semestre 4

Pr. Rachid AIT DAOUD Année Universitaire 2024-2025


Descriptif du module

❖ Intitulé du module: Applications Intelligentes avec Python.

❖ Objectifs du module:

❖ Maîtriser un langage performant (python) dédiés à l’intelligence artificielle.


❖ Savoir manipuler les principales librairies Python.
❖ Pouvoir développer des applications intelligentes.
❖ Comprendre et connaître les principes des technologies utilisées dans le développement d'applications
intelligentes.

2
Plan
1 2 3

Les fondamentaux du langage POO en Python Gestion des fichiers et


Python Automatisation des tâches

• Introduction • Classe & instance • Lire et écrire dans un


• Les types natifs • Les attributs de classe fichier
• Les variables et • Les méthodes • Modules pour la gestion
opérateurs • La fonction dir() des fichiers et répertoires.
• Les types des objets et la • L’attribut spécial __dict__ • Automatisation des
conversion tâches
• L’héritage
• Les structures • Polymorphisme
conditionnelles
• Les structures répétitives
• Les structures de données
(listes, tuples,
dictionnaires,…)
• Les fonctions
• Modules et packages

TPs + mini projets 3


Plan
4 5

Analyse de données et Développement des


Implémentation des applications intélligentes
algorithmes de machine
learning avec Python

• Les modules scientifiques • Développer une application


(Numpy, Scipy, Matplotlib, qui intègre le modèle ML
Seaborn,…) (saisir des données et
• Manipulation et analyse des recevoir des prédictions en
données (Pandas,,…) sortie) (Django, Flask,
• Régression, KNN, Arbres de FastAPI, ..).
décision, ANN • Déploiement de
l’application: AWS, Google
Cloud Platform, Heroku,

TPs + mini projets 4


Chapitre 1: Les fondamentaux du Python
❖ Introduction ❖ Les structures de données
❖ C’est quoi Python ❖ Listes, Tuples, Dictionnnaires
❖ Les environnements de développement ❖ Les fonctions
❖ Les types natifs ❖ Modules et packages
❖ Les chaines de caractères
❖ Les nombres
❖ Les booléens
❖ Les variables
❖ Des objets et des noms
❖ Types d’affectations
❖ Ecriture scientifique
❖ Les opérations
❖ Le type des objets et la conversion
❖ La fonction type()
❖ Conversion de types
❖ Les structures de contrôles
❖ if, elif, else
❖ La boucle for et while
Chapitre 1: Les fondamentaux du Python
❖ Introduction
❑ C’est quoi Python

- Le langage de programmation Python a été créé en 1989 par Guido van Rossum, aux Pays-
Bas.
- La première version publique de ce langage a été publiée en 1991.
- Python Software Foundation est l’association qui organise le développement de Python et
anime la communauté de développeurs et d’utilisateurs.
- Quelques caractéristiques intéressantes:
⁺ Gratuit et open source
⁺ Multiplateforme
⁺ Un langage de haut niveau
⁺ Un langage interprété.
⁺ Typage dynamique.
⁺ Il est relativement simple à prendre en main
⁺ Il est très utilisé en analyse de données

6
Chapitre 1: Les fondamentaux du Python
❖ Introduction
❑ Les environnements de développement

- Pour écrire et exécuter des scripts python, il existe plusieurs éditeurs et environnements de
développement (liste non exhaustive)

- Chaque éditeur a ses avantages et inconvénients


• Sublime Text: Gratuit… mais ce n’est pas vraiment
• VS Code: Entièrement gratuit + permet d’ajouter des plug-in + basculer vers les différentes version de Python facilement.
• PyCharm: Environnement de développement, il est plus centré autour de projet, il est un peu plus lourd, il est fait pour python.
• Jupyter Notebook: "blocs notes de calcul" Un standard pour les Data Scientists. Avan: gratuit, open source, programmation
collaboratif, inconv: absence de fonctionnalités propre aux environnements de développement (pas d’option de débogage
interactif, de complétion de code ou de gestion de module)
• Anaconda: Distribution de logiciels qui comprend Python ainsi que de nombreuses bibliothèques et outils supplémentaires. Il
est conçu pour faciliter l'installation et la gestion de packages Python, en particulier pour les applications liées à la science des
données et à l'apprentissage automatique ML. 7
Chapitre 1: Les fondamentaux du Python
❖ Les types natifs

- Les chaines de caractères - Les types séquentiels (listes, tuples)


Ex: "LP BIG-DATA" - Les types d’ensembles (set, frozenset)
- Les nombres - Les types de correspondances
Ex: entiers, floats (dictionnaires)
- Les booléens
Ex: True(1), False(0)

8
Chapitre 1: Les fondamentaux du Python
❖ Les variables
❑ Des objets et des noms

Une variable en python est un nom qui est associé à un objet et qui va nous
permettre d’accéder plus facilement à cet objet.

annee = 2022
nom objet

Qu’est ce qu’il se passe quand on écrit les instructions suivantes?


annee = 2022 annee 2022
annee2 = annee annee2
Un seul objet dans la mémoire
id(annee) = id(annee2) 9
Chapitre 1: Les fondamentaux du Python
❖ Les variables
❑ Des objets et des noms

Une variable en python est un nom qui est associé à un objet et qui va nous
permettre d’accéder plus facilement à cet objet.

annee = 2022
nom objet

Qu’est ce qu’il se passe quand on écrit les instructions suivantes?


annee = 2022 annee 2022
annee2 = annee annee2 2023
annee2 = 2023

10
Chapitre 1: Les fondamentaux du Python
❖ Les variables
❑ Des objets et des noms

Une variable en python est un nom qui est associé à un objet et qui va nous
permettre d’accéder plus facilement à cet objet.

annee = 2022
nom objet

Qu’est ce qu’il se passe quand on écrit les instructions suivantes?


annee = 2022 annee 2022
annee2 = annee annee2 2023
annee2 = 2023
deux objets dans la mémoire
11
Chapitre 1: Les fondamentaux du Python
❖ Les variables
❑ Des objets et des noms

Une variable en python est un nom qui est associé à un objet et qui va nous
permettre d’accéder plus facilement à cet objet.

annee = 2022
nom objet

Qu’est ce qu’il se passe quand on écrit les instructions suivantes?


annee = 2022 annee 2022
annee2 = annee annee2 2023
annee2 = 2023
annee = 2024 2024
12
Chapitre 1: Les fondamentaux du Python
❖ Les variables
❑ Des objets et des noms

Une variable en python est un nom qui est associé à un objet et qui va nous
permettre d’accéder plus facilement à cet objet.

annee = 2022
nom objet

Qu’est ce qu’il se passe quand on écrit les instructions suivantes?


annee = 2022 Le nombre 2022 n’est plus
annee2 = annee
annee 2022 associé maintenant à aucun

annee2 = 2023
annee2 2023 nom, alors python il va se
débarrasser de cet objet
annee = 2024 annee3 2024 'Garbage Collector'

annee3 = 2024 + 0 print(id(annee)) == print(id(annee3)) 13


Chapitre 1: Les fondamentaux du Python
❖ Les variables
❑ Types d’affectations

En Python il existe différentes types d’affectations:

❖ Affectations simples nom = objet a=7


❖ Affectations parallèles nom1, nom2 = objet1, objet2 a,b = 7,12
❖ Affectations multiples nom1=nom2=nom3= objet a=b=c = 17

14
Chapitre 1: Les fondamentaux du Python
❖ Les variables
❑ Ecriture scientifique

On peut écrire des nombres très grands ou très petits avec des puissances de 10 en utilisant le symbole e

1 * 106
3.12 * 10-3

Python autorise l’utilisation du caractère « souligné » (ou underscore) _ pour séparer des groupes de chiffres.
Par exemple :

15
Chapitre 1: Les fondamentaux du Python
❖ Les variables
❑ Les opérations
1. Opérations sur les types numériques
Les quatre opérations arithmétiques de base sur les types (int et float):
+
-
*
/

Remarques:
• L’opérateur / effectue une division. Contrairement aux opérateurs +, - et *, celui-ci renvoie systématiquement un float.
• L’opérateur puissance utilise les symboles ** (2**3 = 8)
• Pour obtenir le quotient et le reste d’une division entière, on utilise respectivement les symboles // et modulo %
• Un opérateur combiné effectue une opération et une affectation en une seule étape (i = i+1 → i+=1)

16
Chapitre 1: Les fondamentaux du Python
❖ Les variables
❑ Les opérations
2. Opérations sur les chaînes de caractères

Pour les chaînes de caractères, deux opérations sont possibles, l’addition et la multiplication :

• L’opérateur d’addition + concatène (assemble) deux chaînes de caractères.


• L’opérateur de multiplication * entre un nombre entier et une chaîne de caractères duplique (répète) plusieurs
fois une chaîne de caractères.

17
Chapitre 1: Les fondamentaux du Python
❖ Les variables
❑ Les opérations
3. Les opérateurs de comparaison et connecteurs logiques

opérateurs de comparaison : connecteurs logiques : Le type booléen est un sous classe de type nombre

True + 1 = 2 False + 7 = 7
< and (&)
>>>issubclass(bool,int)
<= or (I) True
== not(valeur)
True
!= False
>=
>

À quelle valeur booléenne correspond cette expression Python ? ("A" != "A") or not (2 >= 3)
18
Chapitre 1: Les fondamentaux du Python
❖ Type et conversion

• En Python, il n’est pas nécessaire de


déclarer le type d’une variable avant de
lui affecter une valeur, mais ATTENTION à
ne pas utiliser une variable à laquelle on
a affecté aucune valeur.

• Fonction type(): Pour connaitre le type


d’un objet.
• int(), float(), str(): Pour passer d’un type
à un autre.

19
Chapitre 1: Les fondamentaux du Python
Conventions générales du langage
• Les fichiers de code en python sont nommés
nom_de_fichier.py
• Les instructions sont séparées par un retour à la ligne (une
instruction par ligne)
• Indentation (4 espaces ou tabulations): Il est fortement
recommandé d'utiliser 4 espaces pour chaque niveau
d'indentation (accolades en C {}).
• 79 caractères: Une ligne de code ne devrait pas dépasser 79
caractères.
• Les lignes qui débutent par # sont ignorées par le langage
(lignes de commentaires)

20
Chapitre 1: Les fondamentaux du Python
Affichage de données
• Pour afficher la valeur d’une variable x, on écrit : print(x)

• Pour afficher plusieurs valeurs, on les sépare par une virgule : print(a,b,c,....)

Remarques:
print("C:\Program\twitter\nbroftweets")
→ C:\Program witter
broftweets

Raw string: permet de traiter une chaine de caractères d’une façon brute
print(r"C:\Program\twitter\nbroftweets")

21
Chapitre 1: Les fondamentaux du Python
Saisie de données
• Pour permettre à l’utilisateur d’un programme de saisir la valeur
d’une variable x, on utilise la fonction input()comme ceci :
x = input("saisir la valeur de x : ")

• ATTENTION : la variable saisie x est toujours de type str. Pour


la convertir en nombre, il faut utiliser la fonction int()ou la
fonction float() :

x = int(input("saisir la valeur de x : "))

22
Chapitre 1: Les fondamentaux du Python
Exemple

23
Chapitre 1: Les fondamentaux du Python
❖ Les structures conditionnelles
• Syntaxe : • Exemple :
if test:
indentation
instruction1
instruction2

else:
instruction1
indentation
instruction2

ATTENTION : les indentations et retours à la


ligne sont importants en Python

24
Chapitre 1: Les fondamentaux du Python
❖ Les structures conditionnelles
• Syntaxe : • Exemple :

if test:
instruction(s)
elif test:
instruction(s)
elif test:
instruction(s)

else:
instruction(s)

25
Chapitre 1: Les fondamentaux du Python
❖ Boucle for en Python

• Syntaxe : • Exemples :
for i in range(a,b):
instruction(s)

→ La fonction range permet de créer une


séquence de nombres

Exécute les instructions de la boucle pour les valeurs entières i


suivantes :
a,a+1,a+2,… jusqu’à la valeur b-1

ATTENTION AUX INDENTATIONS


(voir les deux exemples ci-contre)

26
Chapitre 1: Les fondamentaux du Python
❖ Boucle for en Python

→ Itérer sur une chaine de caractère : • Exemples :


P
mot = "Python" y
t
for i in mot: h
print(i) o
n

→ Boucles imbriquées
for i in range(3):
for j in range(2):
print(i, j)

27
Chapitre 1: Les fondamentaux du Python
❖ Boucle for en Python

→ Boucles imbriquées
• Exemples :
n = 2
for i in range(2):
for j in range(3):
n = n*2 # n*=2
print(n)

Q1 : Combien de fois la boucle externe sera exécutée ?


Q2 : Même question pour la boucle interne
Q3 : Quelle est la valeur de n après l’exécution de ces deux boucles imbriquées ?

28
Chapitre 1: Les fondamentaux du Python
❖ Boucle while en Python

• Syntaxe : • Exemple :

while condition:
instruction(s)

Exécute les instructions de la


boucle tant que condition est vraie

29
Chapitre 1: Les fondamentaux du Python
❖ Boucle while en Python

Mots-clés utiles dans les boucles

• break: Permet de sortir prématurément d'une boucle.


• continue: Passe à l'itération suivante sans exécuter le reste du code du corps de la boucle.

for i in range(10): for nombre in range (1,9):


if i == 5: if nombre % 2 != 0: # Si le nombre n'est pas pair
break continue
print(i) print(nombre)

0 2
1 4
2 6
3 8
4
30
Chapitre 1: Les fondamentaux du Python
❖Les structures de données

1. Les listes et les tuples

• Les listes et les tuples sont des structures de données qui permettent de former des
séquences.

• Une séquence est un ensemble d’éléments qui sont ordonnés.

• On dit que chaque élément il a un indice (ou index) qui indique sa position dans la
structure.

• Python autorise la construction de liste/tuple contenant


des valeurs de types différents (par exemple entier et chaîne de caractères)

• Pour retourner la taille d’une structure de données on utilise la fonction len().

31
Chapitre 1: Les fondamentaux du Python
❖ Les listes

32
Chapitre 1: Les fondamentaux du Python
❖ Les listes

Liste1 = [1,2,3,4]
Liste2 = [5,6,7]
Liste3 = [Liste1, Liste2] # ➔ [[1,2,3,4], [5,6,7]]
Question: Quelle est la taille de la Liste3? len(Liste3)
Réponse: Deux éléments de type liste

33
Chapitre 1: Les fondamentaux du Python
❖ Opération sur les listes
Tout comme les chaînes de caractères, les listes supportent l’opérateur + de concaténation, ainsi que l’opérateur
* pour la duplication.
Commenter les lignes suivantes

34
Chapitre 1: Les fondamentaux du Python
❖ Opération sur les listes

35
Chapitre 1: Les fondamentaux du Python
❖ Opération sur les listes

36
Chapitre 1: Les fondamentaux du Python
❖ Les tuples
Un tuple est une liste qui ne peut plus être modifiée.

A l’exception de modification du contenu d’un tuple, toutes les opérations qu’on a appliqué sur les listes restent valides
pour les tuples (extraction des valeurs via l’indice, l’indiçage négatif, les tranches).
→ Les tuples sont des structures de données non mutable (càd on peut pas ni modifier ni supprimer ni ajouter des
éléments après la création d’un tuple)
Comment peut-on afficher le premier élément du 3éme élément de la tuple un_tuple?
print (un_tuple[2][0])

37
Chapitre 1: Les fondamentaux du Python
❖ Les tuples

Importance d’utilisation

Les tuples sont utiles quand :

✓ Vous voulez garantir que vos données ne seront pas modifiées.

✓ Vous retournez plusieurs valeurs d'une fonction.

✓ Vous voulez optimiser les performances pour des données fixes

✓ Vous représentez des structures de données qui ne devraient pas changer (ex: connexion avec serveur web)

→ L'immuabilité n'est pas une limitation, mais une caractéristique qui garantit l'intégrité des données et
permet certaines optimisations.

38
Chapitre 1: Les fondamentaux du Python
❖ Les dictionnaires

Un dictionnaire en python: Structure de données qui permet de stocker une collection de données n’est pas ordonnée
mais qui utilise un système clé:valeur
Autrement dit, un dictionnaire est une sorte de liste mais au lieu d'utiliser des index, on utilise des clés
alphanumériques.

Pour initialiser un dictionnaire , on utile la syntaxe suivante:


>>>mondictionnaire = {} ou mondictionnaire = dict()

Pour ajouter des valeurs dans un dictionnaire, il faut indiquer une clé ainsi qu'une valeur:

39
Chapitre 1: Les fondamentaux du Python
❖ Les dictionnaires

Pour récupérer une valeur dans un dictionnaire

Pour récupérer une valeur dans un dictionnaire avec la méthode get

Pour supprimer une entrée dans un dictionnaire

40
Chapitre 1: Les fondamentaux du Python
❖ Les dictionnaires

Pour récupérer les clés d'un dictionnaire python par une boucle?

Pour récupérer les valeurs d'un dictionnaire python par une boucle?

Pour récupérer les clés et les valeurs d'un dictionnaire python par une boucle (méthode items())

41
Chapitre 1: Les fondamentaux du Python
❖ Les dictionnaires
Pour utiliser des tuples comme clé dans un dictionnaire python

Pour créer une copie indépendante vous pouvez utiliser la méthode copy() :

Pour fusionner des dictionnaires on utilise la méthode update() ou bien l'opérateur de déballage **
>>> dictionnaire1.update(dictionnaire2) OR merged_dict = {**dict1, **dict2}

{'a': 1, 'b': 3, 'c': 4}


42
Chapitre 1: Les fondamentaux du Python
❖ Les fonctions

16
20

Variable locale # variable globale

16
16

43
Chapitre 1: Les fondamentaux du Python
❖ Les fonctions
N.B:

En Python, une fonction peut retourner plusieurs résultats en regroupant ces résultats dans un tuple, une liste
ou un autre type de données.
Lorsque la fonction utilise le mot-clé return suivi de plusieurs valeurs séparées par des virgules, ces valeurs sont
automatiquement regroupées dans un tuple.

def multiple_resultats():
resultat1 = 10
resultat2 = "Bonjour"
return resultat1, resultat2

res = multiple_resultats()
print(res) # affiche (10, 'Bonjour')
print(res[0]) # affiche 10
print(res[1]) # affiche Bonjour

44
Chapitre 1: Les fondamentaux du Python
❖ Les fonctions
Portée des variables dans les fonctions : règle LEG Output

124

L: fonction Locale, E: fonction Englobante, G: fonction Globale


Résumé:
→ Lorsqu’on référence une variable, on cherche d’abord localement, puis dans les fonctions englobante, puis
globalement si on trouve pas, il y a une exception (Erreur).

45
Chapitre 1: Les fondamentaux du Python
❖ Les fonctions
Portée des variables dans les fonctions : règle LEG
Variables Objets
v1
main v2 1
v3 function
f1
v2 2
f1 v3 function
Output f2 3

f2
124 v3 4

Résumé:
Une variable affectée dans un module devient une variable globale, elle est accessible partout le code qui est
contenu dans le module.
Une variable affectée dans une fonction devient une variable locale à cette fonction, elle n’est pas accessible à
l’extérieure de cette dernière. Par contre elles est accessible par toutes les fonctions incluses englobées dans la
46
fonction.
Chapitre 1: Les fondamentaux du Python
❖ Les fonctions
La fonction anonyme

Lambda function
✓ Une fonction anonyme définie avec le mot-clé lambda (n’est pas définie avec le mot clé def)
✓ Syntaxe : lambda arguments: expression (Exemple: lambda x: x * 2)
✓ one-line function
✓ fonction qui n’a pas de nom (identificateur)
✓ Pas de déclaration de retour explicite : La valeur de retour est implicitement renvoyée par l'expression
évaluée.
✓ Portée limitée : Les variables définies à l'extérieur de la fonction lambda peuvent être utilisées à
l'intérieur, mais les variables locales à la fonction lambda ne sont pas accessibles en dehors de celle-ci.

47
Chapitre 1: Les fondamentaux du Python
❖ Les fonctions
La fonction anonyme

Lambda function
Exemple 1:
# Définition d'une fonction lambda pour doubler un nombre
double = lambda x: x * 2

# Utilisation de la fonction lambda pour doubler le nombre 5


resultat = double(5)

# Affichage du résultat
print(resultat)

48
Chapitre 1: Les fondamentaux du Python
❖ Les fonctions
La fonction anonyme

Lambda function

Exemple 2:
etudiant = [("Ahmed", 14.24), ("Ali", 16.00), ("Omar", 14.75), # La même chose mais avec une fonction lambda au lieu d'une
("Kamal", 12.25)] normale
# Liste de tuples contenant des noms et des notes
def obtenir_note(tuple_etudiant): etudiant = [("Ahmed", 14.24), ("Ali", 16.00), ("Omar", 14.75),
return tuple_etudiant[1] ("Kamal", 12.25)]

etudiant_triees = sorted(etudiant, key=obtenir_note, # Tri de la liste d'étudiants en fonction de la note en utilisant une
reverse=True) fonction lambda
print(etudiant_triees) etudiant_triees = sorted(etudiant, key=lambda x: x[1],
reverse=1)
Donner une autre version de ce script en utilisant lambda # Affichage de la liste triée
print(etudiant_triees)
49
Chapitre 1: Les fondamentaux du Python
❖ List comprehension
List comprehension en Python est une façon concise de créer des listes en utilisant une
expression itérable.
Objectif:
• Syntaxe concise pour créer des listes à partir d'itérables.
• Permet de filtrer et de transformer les éléments de l'itérable.
Syntaxe:
Mylist = [expression for item in iterable if condition]

Exemple:

l = [i**2 for item in range(1,6)] l= [1, 4, 9, 16, 25]

nombres_p = [x for x in range(1, 11) if x % 2 == 0] nombres_p = [2,4,6,8,10]

['ali', 'omar']
50
Chapitre 1: Les fondamentaux du Python
❖ Nombre aléatoire en Python : random

51

Vous aimerez peut-être aussi