Python
Python
Nabil Boumedine
Université de Boumerdes
Département de Mathématiques
October 23, 2024
1 Introduction
Les vecteurs sont des objets mathématiques fondamentaux qui trouvent de
nombreuses applications en sciences et en ingénierie. En Python, les vecteurs
peuvent être manipulés efficacement à l’aide de bibliothèques comme NumPy.
1
3.2 Création d’un Vecteur
import numpy as np
2
6 Opérations sur Matrices en Python
Les matrices sont des structures de données fondamentales en mathématiques
et en informatique. En Python, nous pouvons manipuler des matrices à l’aide
de bibliothèques comme NumPy. Ce document présente les opérations de
base sur les matrices en Python, accompagnées d’exercices pratiques.
import numpy as np
7 Opérations de Base
7.1 Addition de Matrices
Deux matrices peuvent être ajoutées si elles ont les mêmes dimensions.
B = np.array([[7, 8, 9],
[10, 11, 12]])
C = A + B # Addition des matrices
3
7.3 Multiplication de Matrices
La multiplication des matrices se fait avec la fonction numpy.dot() ou l’opérateur
@.
E = np.array([[1, 2],
[3, 4],
[5, 6]])
F = np.dot(A, E) # Produit matriciel
# ou
F = A @ E
G = A.T # Transposition de A
8 Exercices
8.1 Exercice 1
Créer deux matrices X et Y de dimensions 2 × 2, puis calculez leur somme
et leur produit.
8.2 Solution 1
X = np.array([[1, 2],
[3, 4]])
Y = np.array([[5, 6],
[7, 8]])
somme = X + Y
produit = np.dot(X, Y)
8.3 Exercice 2
Créer une matrice Z de dimensions 3 × 2 et calculez sa transposition.
4
8.4 Solution 2
Z = np.array([[1, 2],
[3, 4],
[5, 6]])
Z_transpose = Z.T
9 Les Chaı̂nes
Les chaı̂nes de caractères (ou strings) en Python sont des séquences de car-
actères immuables. Python offre de nombreuses opérations pour manip-
uler ces chaı̂nes, allant de la création à la transformation. Ce document
présente les opérations courantes sur les chaı̂nes de caractères, accompagnées
d’exemples.
# Création de cha^
ınes
string1 = ’Bonjour’
string2 = "Monde"
11 3. Longueur de la Chaı̂ne
La fonction len() permet d’obtenir la longueur d’une chaı̂ne.
length = len(string1) # 7
5
12 Slicing
Le slicing permet de créer une sous-chaı̂ne.
13 Concaténation
Les chaı̂nes peuvent être concaténées à l’aide de l’opérateur +.
# Concaténation de cha^
ınes
concatenated = string1 + ’ ’ + string2 # ’Bonjour Monde’
14 Répétition
L’opérateur * permet de répéter une chaı̂ne.
15.2 strip()
Supprime les espaces au début et à la fin de la chaı̂ne.
string_with_spaces = ’ Bonjour ’
stripped_string = string_with_spaces.strip() # ’Bonjour’
6
15.3 replace()
Remplace une sous-chaı̂ne par une autre.
15.4 split()
Divise la chaı̂ne en une liste de sous-chaı̂nes.
15.5 join()
Joint une liste de chaı̂nes en une seule chaı̂ne, séparée par un délimiteur.
index = string1.find(’jour’) # 3
16.2 count()
Compte le nombre d’occurrences d’une sous-chaı̂ne.
count = string1.count(’o’) # 2
name = ’Alice’
formatted_string = ’Bonjour, {}!’.format(name) # ’Bonjour, Alice!’
7
18 F-Strings (Python 3.6+)
Les f-strings permettent d’incorporer des expressions à l’intérieur de chaı̂nes.
name = ’Alice’
f_string = f’Bonjour, {name}!’ # ’Bonjour, Alice!’
20 Packages Populaires
20.1 NumPy
Description : NumPy est une bibliothèque fondamentale pour le calcul
scientifique en Python. Elle fournit un support pour les tableaux multidi-
mensionnels (ndarray) et des fonctions mathématiques pour opérer sur ces
tableaux.
Manipulation de tableaux multidimensionnels.
Fonctions mathématiques de base (addition, multiplication, statistiques).
Opérations vectorisées pour améliorer les performances.
20.2 Pandas
Description : Pandas est une bibliothèque utilisée pour la manipulation
et l’analyse de données. Elle introduit des structures de données comme les
DataFrames, qui facilitent le traitement des données.
Chargement et sauvegarde de données dans divers formats (CSV, Excel,
SQL).
Indexation et sélection de données.
Opérations de regroupement et d’agrégation.
Gestion des valeurs manquantes.
8
20.3 Matplotlib
Description : Matplotlib est une bibliothèque de visualisation de données.
Elle permet de créer des graphiques statiques, animés et interactifs en Python.
20.4 Seaborn
Description : Seaborn est une bibliothèque de visualisation de données
basée sur Matplotlib. Elle fournit une interface de haut niveau pour dessiner
des graphiques attrayants et informatifs.
20.5 Scikit-learn
Description : Scikit-learn est une bibliothèque pour le machine learning.
Elle offre des outils pour l’apprentissage supervisé et non supervisé.
20.6 TensorFlow
Description : TensorFlow est une bibliothèque open source développée par
Google pour le machine learning et le deep learning. Elle est largement
utilisée pour construire et entraı̂ner des modèles d’apprentissage profond.
9
20.7 Keras
Description : Keras est une API de haut niveau pour construire et entraı̂ner
des modèles de deep learning. Elle est souvent utilisée avec TensorFlow
comme backend.
20.8 Flask
Description : Flask est un framework web léger pour Python. Il est conçu
pour faciliter le développement d’applications web.
20.9 Django
Description : Django est un framework web de haut niveau qui facilite
la création de sites web. Il suit le principe “batteries incluses”, offrant de
nombreuses fonctionnalités prêtes à l’emploi.
20.10 Requests
Description : Requests est une bibliothèque pour faire des requêtes HTTP
en Python. Elle rend les appels API simples et intuitifs.
10
21 Packages de Cryptographie
La cryptographie est essentielle pour sécuriser les communications et protéger
les données sensibles. Python dispose de plusieurs bibliothèques de cryp-
tographie qui facilitent la mise en œuvre des techniques cryptographiques.
Ce document présente quelques-uns des principaux packages de cryptogra-
phie, accompagnés d’exemples d’utilisation.
21.1 1. PyCryptodome
Description : PyCryptodome est une bibliothèque de cryptographie qui of-
fre un large éventail d’algorithmes de chiffrement symétrique et asymétrique,
ainsi que des fonctions de hachage.
print("Ciphertext:", ciphertext)
21.2 2. cryptography
Description : La bibliothèque cryptography fournit des recettes et des
primitives cryptographiques pour la sécurisation des données. Elle est bien
documentée et facile à utiliser.
11
Gestion des clés et des certificats.
print("Ciphertext:", ciphertext)
# Déchiffrement
decrypted_text = cipher.decrypt(ciphertext)
print("Decrypted:", decrypted_text)
21.3 3. hashlib
Description : Le module hashlib fournit une interface commune pour
différents algorithmes de hachage. Il est intégré dans la bibliothèque standard
de Python.
import hashlib
12
21.4 4. PyNaCl
Description : PyNaCl (Python bindings for Networking and Cryptography)
est une bibliothèque qui implémente des primitives cryptographiques de haut
niveau.
print("Ciphertext:", ciphertext)
# Déchiffrement
decrypted = box.decrypt(ciphertext)
print("Decrypted:", decrypted)
13
ou une clé spécifique. Chaque lettre du message original est substituée par
une lettre déterminée par la clé.
23.2 Concept
La méthode de César est simple et consiste à :
14
23.3 Implémentation en Python
Voici comment implémenter le chiffrement de César en Python :
# Exemple d’utilisation
plaintext = ’Nous sommes les étudiants de CS de l\’université de Boumerdes.’
shift = 3 # Décalage de 3
ciphertext = caesar_encrypt(plaintext, shift)
print("César Ciphertext:", ciphertext)
23.5 Concept
Le chiffrement de Vigenère utilise une clé pour décaler chaque lettre du texte
clair en fonction de la lettre correspondante de la clé. Si la clé est plus courte
que le texte, elle est répétée. Cela rend le chiffrement plus résistant aux
analyses de fréquence que le chiffrement de César.
15
23.6 Implémentation en Python
Voici une implémentation du chiffrement de Vigenère :
for i in range(len(plaintext_int)):
if plaintext[i].isalpha():
value = (plaintext_int[i] + key_as_int[i % key_length]) % 26
result.append(chr(value + 65))
else:
result.append(plaintext[i])
return ’’.join(result)
16