[go: up one dir, main page]

0% ont trouvé ce document utile (0 vote)
160 vues24 pages

Programmation Avec Python S1

Le document présente un cours de programmation en Python pour l'année académique 2024/2025, enseigné par Dr. Hicham BELDJILLALI à l'ENSSEA. Il couvre des sujets tels que les opérations fondamentales, les conditions, les boucles, les fonctions, ainsi que la lecture et l'écriture dans des fichiers. Le document explique également les différences entre Python 2.x et 3.x, et inclut des exemples pratiques pour illustrer les concepts abordés.

Transféré par

Debit YT
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)
160 vues24 pages

Programmation Avec Python S1

Le document présente un cours de programmation en Python pour l'année académique 2024/2025, enseigné par Dr. Hicham BELDJILLALI à l'ENSSEA. Il couvre des sujets tels que les opérations fondamentales, les conditions, les boucles, les fonctions, ainsi que la lecture et l'écriture dans des fichiers. Le document explique également les différences entre Python 2.x et 3.x, et inclut des exemples pratiques pour illustrer les concepts abordés.

Transféré par

Debit YT
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/ 24

Programmation avec

Python
ENSSEA 2024/2025
Enseignant : Dr. Hicham BELDJILLALI

ENSSEA
Tel: Kolea, Tipaza www.enssea.dz
Fax:
Sommaire

Table de Contenue
Présentation ________________________________________________________________ 1
Qu’est-ce que Python ? ______________________________________________________ 1

Pourquoi utiliser Python ? ____________________________________________________ 1

Anaconda_________________________________________________________________ 2

Python 2.x contre 3.x ________________________________________________________ 2

Opérations Fondamentales _____________________________________________________ 3


Commentaires _____________________________________________________________ 3

Noms des variables _________________________________________________________ 3

Déclarer plusieurs variables __________________________________________________ 3

Entiers (integer) et Réel (Float) ________________________________________________ 3

Opérations mathématiques ___________________________________________________ 4

Chaînes de caractères _______________________________________________________ 4

Tuples, listes et dictionnaires __________________________________________________ 5

Indexation ________________________________________________________________ 7

Trancher__________________________________________________________________ 8

Attention : copier des listes ____________________________________________________ 9

Sous liste ________________________________________________________________ 10

Calcule Matricielle _________________________________________________________ 10

CONDITIONS ______________________________________________________________ 12
Syntaxe __________________________________________________________________ 12

Example 1 ________________________________________________________________ 12

Example 2 ________________________________________________________________ 12

Example 3 ________________________________________________________________ 13

Example 4 ________________________________________________________________ 13

BOUCLES _________________________________________________________________ 14
Syntaxe While _____________________________________________________________ 14

Example _________________________________________________________________ 14

Syntaxe For_______________________________________________________________ 14
Sommaire

Example 1 ________________________________________________________________ 14

Example 2 ________________________________________________________________ 14

Example 3 ________________________________________________________________ 15

Example 4 ________________________________________________________________ 15

FONCTIONS _______________________________________________________________ 16
Syntaxe __________________________________________________________________ 16

Example 1 ________________________________________________________________ 16

Example 2 ________________________________________________________________ 16

LIRE ET ECRIRE DANS DES FICHIERS _________________________________________ 17


Afficher / définir le répertoire de travail _________________________________________ 19

Simulation et exportation d’une DataFrame ______________________________________ 19

INFORMATION DU FORMATEUR ______________________________________________ 21


Pg. 01 Présentation

Statistique est un
outil pour
Présentation
atteindre l’objectif
Qu’est-ce que Python ?
de la science.
Python est un langage de programmation à usage général. Comme R, il s'agit
d'un langage orienté objet de haut niveau. Contrairement à R, il n’a pas été
développé spécifiquement pour la pratique des statistiques. Cependant, un
certain nombre de packages utiles ont été développés en Python pour les
mathématiques, les statistiques et la Data science.

Pourquoi utiliser Python ?


Développé dans la communauté informatique, Python est largement utilisé pour
la science des données et l’apprentissage automatique. Quelques raisons pour
lesquelles vous pourriez utiliser Python plutôt que R :

• Vous souhaitez utiliser un package particulier en Python (par exemple


pandas, scikit-learn)
• Vous souhaitez intégrer votre code dans un projet (ex : un site internet)
déjà codé en Python
• Préférence personnelle : vous êtes plus à l'aise avec le codage en Python
(fonctionnalité, syntaxe)
• Vos collègues ou collaborateurs utilisent Python

Inconvénients :

• La documentation n'est pas géniale par rapport à R (mais reste plutôt


bonne)
• Travailler avec des données peut être un peu maladroit par rapport à R
Pg. 02 Présentation

Anaconda
La distribution Anaconda de Python est un moyen simple d'installer Python ainsi
que les packages les plus utiles.

Python 2.x contre 3.x


Il existe deux versions de Python largement prises en charge. Hormis quelques
légères différences de syntaxe (par exemple : si la fonction d'impression
nécessite des parenthèses), les différences pratiques sont généralement
minimes et sans importance. J'utilise Python 3 et je vous recommande de faire
de même, sauf si vous avez une raison préalable de faire autrement (travailler
avec du code Python plus ancien, collègues utilisant Python 2, etc.)

Hicham BELDJILLALI
Maitre de Conférence
January 8, 2025
Pg. 03 Opérations Fondamentales

Opérations Fondamentales
Commentaires
Les commentaires en Python utilisent # ; e.g.

# Ce code ne fait rien.

Noms des variables


Vous pouvez inclure des traits de soulignement et des chiffres dans les noms de
variables, mais pas de points1.

# pas de problème
ma_var = 0 ; var0 = 0
# problème
ma.variable = 0 ; 1variable = 0

Déclarer plusieurs variables


Petite astuce : vous pouvez déclarer ou définir plusieurs variables à la fois.

x , y = 5 , 10

Entiers (integer) et Réel (Float)


Comme R, il n’est généralement pas nécessaire de déclarer la classe d’un
nombre.

x = 5 ; y = 2,75 ; z = 8 / 3 ; print ( x , y , z )
5 2,75 2,6666666666666665

1 Le point est enregistré pour les méthodes sur les objets.


Pg. 04 Opérations Fondamentales

• La fonction int() transforme la classe d’une variable à un nombre entier.


• La fonction float() transforme la classe d’une variable à un nombre réel.

Opérations mathématiques
Le tableau suivant présente les différentes opérations mathématiques dans
Python, commençons par l’opération la plus prioritaire jusqu’à l’opération la
moins prioritaire :

Operateur Opération Exemple Résultats


** Puissance 2 ** 3 8
// Division entière/quotient à étages 22 // 8 2
/ Division 22 / 8 2.75
* Multiplication 3*5 15
% Modulus / reste 22 % 8 6
- Soustraction 5-2 3
+ Addition 2+2 4

Chaînes de caractères
Les chaînes de caractères dans Python peuvent être définies à l'aide de
guillemets simples ' ' ou de guillemets doubles " ".

'ENSSEA' ; "ENSSEA"

La fonction str() transforme la classe d’une variable à une chaine de caractère.

La fonction len() renvoie la longueur d'une chaîne :

x = 'engineer' ; print ( len ( x ))


8
Pg. 05 Opérations Fondamentales

On peut utiliser l’opérateur + pour concaténer des chaînes :

y = 'Statistic' ; z = x + 'al ' + y ; print ( z )


Statistical engineer

Pour dupliquer une variable de type chaine, on utilise l’opérateur * :

print ( 'ENSSEA_' * 3 )
ENSSEA_ENSSEA_ENSSEA_

Divisez une chaîne en utilisant la méthode split().

z = z . split ( ' ' ) ; print ( z )

['Statistical', 'engineer']

Vous pouvez également rejoindre une liste de chaînes en utilisant join().

x = [ 'Un' , 'deux' , 'rouge' , 'bleu' ]


x1 = ', ' .join ( x ) ; print ( x1 )
Un, deux, rouge, bleu

Tuples, listes et dictionnaires


Python dispose de plusieurs types de données différents pour combiner
plusieurs éléments en un seul objet.

# liste
x = [ 1 , 2 , 3 ]

# tuple
y = ( 4 , 5 , 6 )

# dictionnaire
z = { 'a' : 7 , 'b' : 8 , 'c' : 9 }
Pourquoi ces différentes structures de données ?
Pg. 06 Opérations Fondamentales

• Les listes sont simples et relativement faciles à utiliser.


• Les tuples occupent moins de mémoire que les listes, mais sont
immuables : une fois que vous en avez créé un, vous ne pouvez plus
apporter de modifications.
• Les dictionnaires permettent une indexation non numérique et sont
généralement plus rapides (recherches et récupération plus rapides).

Comme les chaînes, len() renvoie la longueur de ces objets.

print ( len ( x ), len ( y ), len ( z ))


3 3 3

Notamment, ces structures de données peuvent inclure tout type d’objet :

maliste = [ 1 , 'taco' , x , y , z ]
montuple = ( 1 , 'taco' , x , y , z )
mondictionnaire={ 0 : 1,1 : 'taco' ,2 : x ,3 : y,4 : z }

print ( maliste ) ; print ( montuple ) ;


print ( mondictionnaire )
[1, 'taco', [1, 2, 3], (4, 5, 6), {'a' : 7, 'b' : 8, 'c' : 9}]
(1, 'taco', [1, 2, 3], (4, 5, 6), {'a' : 7, 'b' : 8, 'c' : 9})
{0:1,1:'taco',2:[1, 2, 3],3:(4, 5, 6),4:{'a':7,'b':8,'c':9}}

Quelques méthodes utiles des dictionnaires :

z = { 'une' : 7 , 'b' : 8 , 'c' : 9 }


liste ( z . keys ())
['a', 'b', 'c']
liste ( z . values ())
[7, 8, 9]
liste ( z . items ())
[('a', 7), ('b', 8), ('c', 9)]
Pg. 07 Opérations Fondamentales

Indexation
Les éléments de liste et de tuple (et les sous-chaînes) sont accessibles par
index2. Python commence les index par 0 au lieu de 1.

# liste
x = [ 1 , 2 , 3 ]

# tuple
y = ( 4 , 5 , 6 )

# dictionnaire
z = { 'a' : 7 , 'b' : 8 , 'c' : 9 }

# chaîne
s = "sasquatch"

# imprimer un élément individuel de chaque objet


print ( x [ 0 ], y [ 2 ], z [ 'a' ], s [ 3 ])
1 6 7 q

Les index négatifs ne suppriment pas un élément d’une liste. C’est-à-dire, les
index négatifs vont dans l'autre sens, par exemple x[-1] est la dernière entrée
dans x, x[-2] est l'avant-dernière, etc.

X = [ 1 , 2 , 3 ]
print ( x [ 0 ], x [ 1 ], x [ 2 ])
print ( x [ - 1 ], x [ - 2 ], x [ - 3 ])
1 2 3
3 2 1

2 Les entrées du dictionnaire sont accessibles à l'aide des touches du dictionnaire.


Pg. 08 Opérations Fondamentales

Trancher
Sous-définissez une liste ou un tuple (ou une chaîne) en utilisant des crochets
et un deux-points. Considérez les index comme des murs séparant différentes
cases. Pour renvoyer le contenu de plusieurs cases, il faut donner les index des
murs extérieurs.

# Exemple :
x = [ 8 , 9 , 10 ]
print ( x [ 0 : 2 ], x [ 1 : 3 ])
[8, 9] [9, 10]

Notez que vous pouvez omettre les chiffres de chaque côté des deux points pour
étendre la tranche autant que possible.

print ( x [ 0 : 3 ], x [ - 3 :], x [:])


[8, 9, 10] [8, 9, 10] [8, 9, 10]

Le découpage fonctionne également avec des chaînes.

s = "sasquatch"

print ( s [ 0 : 6 ])
Sasqua

Accéder aux éléments non consécutifs est un peu délicat. Une façon d'y parvenir
est de comprendre une liste, dont je parlerai plus tard.

x = [ 2 , 4 , 6 , 8 ]
# prendre le sous-ensemble correspondant aux index 1 et 3
x_sub = [ x [ i ] for i in [ 1 , 3 ]]
print ( x_sub )
[4, 8]
Pg. 09 Opérations Fondamentales

Attention : copier des listes


Lorsque vous définissez une variable liste égale à une autre variable liste,
python économise de l'espace en pointant vers le même objet en mémoire. Cela
ne crée pas une copie unique de l'objet.

Si vous modifiez l'objet, les deux variables changeront.

# problème
x = [ 1 , 2 , 3 ]
y = x
y [ 0 ] = 10
print ( x )
[10, 2, 3]

Moyens sûrs de copier : découpez-le, utilisez list() ou utilisez la méthode copy()

x = [ 1 , 2 , 3 ]
# méthode 1
a = x [:]
# méthode 2
b = list ( x )
# méthode 3
c = x . copy ()

# apporter des modifications aux copies


a [ 0 ] = 10 ; b [ 1 ] = 20 ; c [ 2 ] = 30

print ( 'x: ' , x ) ; print ( 'a: ' , a )


print ( 'b: ' , b ) ; print ( 'c: ' , c )
x : [1, 2, 3]
a : [10, 2, 3]
b : [1, 20, 3]
c : [1, 2, 30]
Pg. 10 Opérations Fondamentales

Sous liste
Voici un ensemble d’exemples pour la création des sous listes avec python :

x = [2,4,6,8]
x_sub1 = [x[i] for i in [1,3]]
print(x_sub1)
x_sub2 = [x[i]>=6 for i in range(len(x))]
print(x_sub2)
x_squared = [i**2 for i in x]
print(x_squared)
y = [v for v in x if v > 5]
print(y)

Calcule Matricielle
Ici on va utiliser la bibliothèque numpy :
import numpy as np
np.pi
np.arange(10)
np.arange(0,3,0.2)
np.linspace(0,1,10)
x = np.array([1,2,3])
y = np.array([4,5,6])
print(x + y, x**2, (1/y).round(2))
print(np.exp(x), np.log(x))
# matrice des zeros
np.zeros([3,2])
# matrice des uns
np.ones([2,3])
# matrice diagonale
np.diag([1,2,3])
# creation matrice
M = np.array([1,2,2,4,3,6,4,8]).reshape(4,2)
print(M)
# concatemer avec les colonnes
C = np.array([3,6,9,12]).reshape(4,1)
Pg. 11 Opérations Fondamentales

M = np.concatenate([M,C],axis=1)
print(M)
# concatemer avec les lignes
L = np.array([5,10,15]).reshape(1,3)
M = np.concatenate([M,L],axis=0)
print(M)
# matrice transposée
M_Trans = M.T
print(M_Trans)
# produit matricielle
y1 = np.array([1,1,1]).reshape(3,1)
print(M.dot(y1))
y2 = np.array([1,1,1])
print(np.dot(M,y2))
# erreur de dimensions
y3 = np.array([1,1,1]).reshape(1,3)
print(M.dot(y3))
M1 = np.arange(4).reshape(2,2)
print(M1)
# matrice inverse
M1_inv = np.linalg.inv(M1)
print(M1_inv)
# valeurs et vecteurs propres
eig = np.linalg.eig(M1)
val = eig[0]
vec = eig[1]
print(val, '\n')
print(vec)
Pg. 12 CONDITIONS

CONDITIONS
Syntaxe
if ( condition 1 ) :
instructions ; …
elif ( condition ) :
instructions ; …
else :
instructions ; …

Example 1
x = 5

if ( x > 10 ) :
print ( 'x est supérieur à 10' )
elif ( x < 0 ) :
print ( 'x est négatif' )
else :
print ( 'x est compris entre 0 et 10' )

x est compris entre 0 et 10

Example 2
Si vous le souhaitez, vous pouvez mettre une instruction if sur une seule ligne.

y = 7

if y == 7 : print ( 'y vaut sept!' )

y vaut sept!
Pg. 13 CONDITIONS

Example 3
Les booléens en Python sont True et False.

if True :
print ( 'oui' )

if Faux :
print ( 'non' )
Oui

Vous pouvez également utiliser 0 et 1 au lieu True et False comme suit :

if 1 :
print ( 'oui' )

if 0 :
print ( 'non' )
Oui

Example 4
Ce code résoudre une équation de 2 ème degré : 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0

a = float(input()); b= float(input()); c= float(input())


if a == 0 :
print (‘x = ’, -c / b)
else:
delta = b ** 2 – 4 * a * c
if delta >=0:
x1 = (-b – delta ** 0.5) / (2 * a)
x2 = (-b + delta ** 0.5) / (2 * a )
print (‘X1 = ‘, x1); print(‘X2 = ‘, x2)
else:
x1 = -b / (2 * a); x2 = (-delta) ** 0.5 / (2 * a)
print (‘X1 = ’ + str(x1) + ‘+ i ‘ + str(x2))
print (‘X2 = ’ + str(x1) + ‘- i ‘ + str(x2))
Pg. 14 BOUCLES

BOUCLES
Syntaxe While
while ( condition ):
instructions ; …

Example
i = 10
while ( i < 13 ):
print ( i )
i += 1
10
11
12

Syntaxe For
for index in range :
instructions ; …

Example 1
x = [ 'pomme' , 'banane' , 'cerise' ]
for fruits in x :
print ( fruit )
pomme
banane
cerise

Example 2
for i in range ( 3 ):
print ( i )
0
1
2
Pg. 15 BOUCLES

Example 3
for a , b in [( 1 , 1 ),( 2 , 4 ),( 3 , 9 )] :
print ( a , ' au carré est égal à ' , b )
1 au carré est égal à 1
2 au carré est égal à 4
3 au carré est égal à 9

Example 4

𝑥2 𝑥4 𝑥𝑛
+ +... + 𝑠𝑖 𝑛 𝑒𝑠𝑡 𝑝𝑎𝑖𝑟
SPF = 2! 34! 𝑛!
𝑛
𝑥 𝑥
{𝑥 + 3! +... + 𝑛! 𝑠𝑖 𝑛 𝑒𝑠𝑡 𝑖𝑚𝑝𝑎𝑖𝑟

Pour calculer la somme SPF, voici le code :

n = input('Merci pour introduise n : ')


x = input('Merci pour introduise x : ')
F = 1
index = int(n) % 2
SFP = float(x) * index
P = float(x) ** index
for i in range(2 + index, int(n) + 1, 2):
F = F * i *(I - 1)
P = P * float(x) * float(x)
SPF = SPF + P/F
print(SPF)
Pg. 16 FONCTIONS

FONCTIONS
Syntaxe
def nom_de_la_fonction ( paramètres ):
instructions ; …
return ( résultat )

Example 1
def carre ( x ):
return ( x ** 2 )

print ( carre ( 4 ))
16

Example 2
Vous pouvez donner des valeurs de paramètres par défaut :

def prod ( x = 1 , y = 2 ):
return ( x * y )

print ( prod (), prod ( 2 ), prod ( 3 , 4 ))


2 4 12
Pg. 17 LIRE ET ECRIRE DANS DES FICHIERS

LIRE ET ECRIRE DANS DES FICHIERS


À cet égard, Python est assez similaire à C.

# créer des données à écrire dans le fichier


x = [ 1 , 2 , 3 , 4 , 5 ]
carres = [ i ** 2 for i in x ]
couleurs = [ 'rouge' , 'bleu' , 'jaune' , 'vert ' , 'rou
ge' ]

# convertir x et les carrés en chaînes


x = [ str ( i ) for i in x ]
squares = [ str ( i ) for i in carres ]

print ( x )
print ( squares )
['1', '2', '3', '4', '5']
['1', '4', '9', '16', '25']
# compresser les trois variables ensemble
mydata = list ( zip ( x , squares , couleurs ))
mydata
[('1', '1', 'red'),
('2', '4', 'blue'),
('3', '9', 'yellow'),
('4', '16', 'green'),
('5', '25', 'red')]
# ouvrir un fichier en écriture
f = open ( 'testfile.csv' , 'w' )

# écrivez une ligne à la fois à partir de mydata


# la boucle for extrait automatiquement un élément à la fo
is (dans ce cas, un tuple à la fois)
for ligne in mydata :
f.write(','.join(ligne) + '\n')

# ferme le fichier
f . close ()
Pg. 18 LIRE ET ECRIRE DANS DES FICHIERS

Maintenant, pour relire ces données :

# regardez les données brutes


# réfléchissez à la façon dont cela peut être analysé
f = open ( 'testfile.csv' , 'r' )

f . read ()
'1,1,rouge\n2,4,bleu\n3,9,jaune\n4,16,vert\n5,25,rouge\n'

# lire les données


f = open ( 'testfile.csv' , 'r' )

x2 , squares2 , colours2 = [], [], []

for ligne in f :
# remarque : strip() supprime le \n
tmp = line.strip().split(',')
x2.append(tmp[0])
squares2.append(tmp[1])
colours2.append(tmp[2])

print ( x2 )
print ( squares2 )
print ( colours2 )
['1', '2', '3', '4', '5']
['1', '4', '9', '16', '25']
['rouge', 'bleu', 'jaune', 'vert', 'rouge']

# convertir les chaînes numériques en entiers


x2 = [ int ( i ) for i in x2 ]
squares2 = [ int ( i ) for i in squares2 ]

print ( x2 )
print ( squares2 )
[1, 2, 3, 4, 5]
[1, 4, 9, 16, 25]
Pg. 19 LIRE ET ECRIRE DANS DES FICHIERS

Afficher / définir le répertoire de travail


# importer le package os. En savoir plus sur les packages
ci-dessous.
import os

# afficher le répertoire de travail


os.getcwd ()
'/ Users/H_Bel/Documents/Work/ITTalents/ENSSEA/python'

# change le répertoire de travail


os.chdir('/Users/H_Bel/Documents/Work/ITTalents/ENSSEA' )
os.getcwd ()
'/ Users/H_Bel/Documents/Work/ITTalents/ENSSEA'

Simulation et exportation d’une DataFrame


import pandas as pd
import random
id = range(1,101)
cav = [random.randint(6,11) for i in range(100)]
cap = [random.randint(7,15) for i in range(100)]
genre = ['Femme','Homme'] * 50
age = ['Adolescent','Adulte','Vieux'] * 33 + ['Adolescent'
]
data = [id,genre,age,cav,cap]
df2 = pd.DataFrame(data)
df1 = df2.T
df1.columns = ['ID', 'Genre', 'Age', 'Consom Avant', 'Cons
om Aprés']
df1.to_csv('BDD1.csv',index=False)
df1.to_excel('BDD1.xlsx',index=False)
df1.to_csv('BDD1.txt', sep='\t', index=False)
Pg. 20 LIRE ET ECRIRE DANS DES FICHIERS

df = pd.read_excel(‘BDD1.xlsx')
print(df.columns)
Pg. 21 INFORMATION DU FORMATEUR

INFORMATION DU FORMATEUR

Hicham BELDJILLALI
Maitre de Conférence
H_beldjilllali@hotmail.com

Vous aimerez peut-être aussi