Aller au contenu principal

Apprendre Python

Python est un langage de programmation polyvalent qui a gagné en popularité dans de nombreux domaines de l'informatique, y compris l'automatisation des opérations, la gestion des systèmes, la sécurité informatique et le développement DevOps. Que vous soyez un administrateur système cherchant à automatiser des tâches répétitives, un ingénieur en sécurité souhaitant analyser des journaux de données, ou un développeur DevOps travaillant sur le déploiement continu, Python peut être un allié puissant dans votre boîte à outils.

La simplicité et la lisibilité de la syntaxe Python en font un excellent choix pour les professionnels de l'informatique. Que vous soyez un débutant complet en programmation ou que vous ayez déjà de l'expérience, ce guide vous aidera à acquérir les compétences nécessaires pour commencer à utiliser Python efficacement dans le contexte du SRE (Site Reliability Engineering) et du DevOps.

Que vous ayez l'intention de travailler dans le domaine de la sécurité, de l'exploitation système, du développement logiciel ou du DevOps, les compétences en Python sont un atout précieux. Alors, prêt à plonger dans le monde de Python pour l'automatisation, la SRE et le DevOps ? Commençons !

Premier pas avec Python

Python est un langage de programmation interprété, polyvalent et facile à apprendre. Il a été créé par Guido van Rossum et publié pour la première fois en Python se distingue par sa syntaxe lisible et sa simplicité, ce qui en fait un excellent choix pour les débutants en programmation. Cependant, il est également utilisé par des professionnels expérimentés en raison de sa polyvalence et de sa capacité à résoudre une grande variété de problèmes informatiques.

Les caractéristiques principales de Python incluent :

  • Syntaxe Lisible : La syntaxe de Python est facile à lire et à comprendre, ce qui en fait un langage idéal pour collaborer et maintenir du code.
  • Polyvalence : Python peut être utilisé pour développer des applications web, des scripts d'automatisation, des applications de bureau, des outils d'analyse de données et bien plus encore.
  • Communauté Active : Python bénéficie d'une vaste communauté d'utilisateurs et de développeurs qui contribuent à l'écosystème Python avec de nombreuses bibliothèques et frameworks.
  • Plateformes Multiples : Python est pris en charge sur de nombreuses plates-formes, y compris Windows, macOS et diverses distributions Linux.

Installation de Python

Avant de commencer à programmer en Python, vous devez installer Python sur votre système. L'installation de Python dépend du système d'exploitation que vous utilisez. Voici comment installer Python sur Linux, Windows et macOS.

Installation de Python sur Linux

La méthode d'installation de Python peut varier selon la distribution Linux que vous utilisez. Voici comment installer Python sur deux familles de distributions Linux courantes : Debian et Red Hat.

Famille Debian

Ouvrez un terminal et exécutez les commandes suivantes :

sudo apt update
sudo apt install python3
Famille Redhat

Ouvrez un terminal et exécutez les commandes suivantes :

sudo dnf install python3

Installation de Python sur Windows

Chocolatey est un gestionnaire de paquets pour Windows qui simplifie l'installation de logiciels. Voici comment installer Python sur Windows en utilisant Chocolatey :

Ouvrez une invite de commandes en tant qu'administrateur. Pour ce faire, recherchez "cmd" dans le menu Démarrer, faites un clic droit sur "Invite de commandes" et choisissez "Exécuter en tant qu'administrateur".

Installez Chocolatey en suivant les instructions sur le site web de Chocolatey : https://chocolatey.org/install.

Une fois Chocolatey installé, ouvrez une nouvelle invite de commandes (normale, pas en tant qu'administrateur) et exécutez la commande suivante pour installer Python :

choco install python

Cette commande téléchargera et installera Python sur votre système.

Installation de Python sur macOS (en utilisant Homebrew)

Homebrew est un gestionnaire de paquets pour macOS qui facilite l'installation de logiciels. Voici comment installer Python sur macOS en utilisant Homebrew :

Ouvrez un terminal.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

brew install python@3

Cette commande téléchargera et installera Python sur votre système.

Après avoir suivi ces étapes, Python devrait être correctement installé sur votre système, que ce soit sous Linux, Windows ou macOS. Vous pouvez vérifier l'installation en ouvrant un terminal et en exécutant la commande python --version (ou python3 --version sur certains systèmes) pour afficher la version de Python installée.

Vérification de l'installation

Ouvrez un terminal et entrez la commande suivante pour vérifier que Python est correctement installé :

python --version
Python 3.10.12

Vous devriez voir la version de Python que vous avez installée s'afficher.

Ecrire votre premier programme Python

Maintenant que Python est installé, créons et exécutons votre tout premier programme Python, traditionnellement appelé "Hello, World!".

Ouvrez un éditeur de texte de votre choix, tel que Notepad (Windows), Visual Studio Code, Sublime Text, ou même l'éditeur de texte intégré à votre système.

Dans l'éditeur de texte, saisissez le code suivant :

print("Hello, World!")

Ce code utilise la fonction print() pour afficher le texte "Hello, World!" à l'écran.

Enregistrez le fichier avec une extension .py. Par exemple, vous pouvez l'enregistrer sous le nom hello.py.

Ouvrez un terminal, naviguez jusqu'au répertoire où vous avez enregistré le fichier hello.py, puis exécutez le programme en entrant la commande suivante :

python hello.py

Vous devriez voir le texte "Hello, World!" s'afficher à l'écran, ce qui signifie que votre premier programme Python a été exécuté avec succès !

Variables et Types de Données

Les variables sont un élément essentiel de la programmation. Elles permettent de stocker et de manipuler des données. En Python, les variables sont très flexibles, car vous n'avez pas besoin de déclarer explicitement leur type. Dans ce chapitre, nous allons explorer la déclaration de variables et les types de données de base en Python.

Déclaration de Variables

En Python, la déclaration d'une variable est simple. Vous pouvez utiliser un nom de variable significatif et Python déterminera automatiquement le type de données en fonction de la valeur que vous lui attribuez. Voici un exemple :

nom = "Alice"  # Une variable de type chaîne de caractères (str)
age = 30       # Une variable de type entier (int)
taille =  # Une variable de type flottant (float)
est_majeur = True  # Une variable de type booléen (bool)
  • Les noms de variables sont sensibles à la casse (par exemple, nom et Nom sont considérés comme deux variables distinctes).
  • Vous pouvez utiliser des lettres, des chiffres et des caractères de soulignement _ dans les noms de variable, mais ils ne doivent pas commencer par un chiffre.
  • Les noms de variable doivent être choisis de manière significative pour faciliter la compréhension du code.

Types de Données de Base

Python offre plusieurs types de données de base que vous utiliserez fréquemment. Voici les principaux :

  • Entier (int) : Utilisé pour stocker des nombres entiers, positifs ou négatifs.
  • Flottant (float) : Utilisé pour stocker des nombres décimaux (avec une virgule flottante).
  • Chaîne de caractères (str) : Utilisé pour stocker du texte, entouré de guillemets simples (') ou doubles (").
  • Booléen (bool) : Utilisé pour représenter des valeurs de vérité (True ou False).

Exemples d'utilisation de ces types de données :

entier = 42
flottant = 3.14
chaine = "Bonjour, Python !"
est_vrai = True

Conversion entre Types de Données

Vous pouvez convertir des variables d'un type à un autre en utilisant des fonctions de conversion. Par exemple :

nombre_texte = "123"  # Une chaîne de caractères
nombre_entier = int(nombre_texte)  # Convertit en entier
nombre_flottant = float(nombre_texte)  # Convertit en flottant

# Vous pouvez également convertir des nombres en chaînes de caractères
age = 30
age_texte = str(age)

Assurez-vous de comprendre les types de données, car ils sont fondamentaux pour la manipulation des données en Python.

Utilisation de Commentaires

Les commentaires sont un moyen d'ajouter des explications dans votre code Python. Ils sont ignorés lors de l'exécution du programme. Utilisez le symbole # pour commencer un commentaire.

Exemple :

# Ceci est un commentaire
nom = "Alice"  # Ceci est également un commentaire

Les commentaires sont utiles pour expliquer votre code aux autres programmeurs (ou à vous-même) et pour rendre le code plus lisible.

Opérations de Base

En Python, vous pouvez effectuer un large éventail d'opérations sur les variables pour manipuler des données et effectuer des calculs. Dans cette section, nous allons explorer les opérations de base telles que les opérations mathématiques, la manipulation de chaînes de caractères et les opérations logiques.

Opérations Mathématiques

Python prend en charge les opérations mathématiques courantes que vous attendez d'un langage de programmation. Voici quelques exemples :

  • Addition (+) : Utilisée pour ajouter deux nombres.
  • Soustraction (-) : Utilisée pour soustraire un nombre d'un autre.
  • Multiplication (*) : Utilisée pour multiplier deux nombres.
  • Division (/) : Utilisée pour diviser un nombre par un autre.
  • Modulo (%) : Utilisée pour obtenir le reste de la division de deux nombres.

Exemples :

a = 10
b = 3

addition = a + b  # 13
soustraction = a - b  # 7
multiplication = a * b  # 30
division = a / b  # (flottant)
modulo = a % b  # 1

Manipulation de Chaînes de Caractères

Python offre de nombreuses opérations pour manipuler des chaînes de caractères (texte). Voici quelques-unes des opérations de base :

  • Concaténation : Combinez deux chaînes de caractères en les ajoutant ensemble.
  • Longueur : Obtenez la longueur d'une chaîne de caractères en utilisant la fonction len().
  • Indexation : Accédez à des caractères spécifiques dans une chaîne en utilisant des indices (attention : l'index commence à 0).
  • Découpage : Obtenez une sous-chaîne en spécifiant une plage d'indices.

Exemples :

chaine1 = "Bonjour"
chaine2 = "Python"

concatenation = chaine1 + ", " + chaine2  # "Bonjour, Python"
longueur = len(chaine1)  # 7
premier_caractere = chaine1[0]  # "B"
sous_chaine = chaine2[0:3]  # "Pyt"

Opérations Logiques

Les opérations logiques sont couramment utilisées pour prendre des décisions dans les structures de contrôle conditionnelles. Les opérations logiques de base sont :

  • Et logique (and) : Vrai seulement si les deux conditions sont vraies.
  • Ou logique (or) : Vrai si au moins l'une des conditions est vraie.
  • Non logique (not) : Inverse la valeur logique d'une condition.

Exemples :

vrai = True
faux = False

resultat_et = vrai and faux  # Faux
resultat_ou = vrai or faux  # Vrai
resultat_non = not vrai  # Faux

Priorités des Opérations

Lorsque vous effectuez plusieurs opérations dans une expression, Python suit un ordre de priorité standard. Cependant, vous pouvez utiliser des parenthèses pour spécifier l'ordre d'évaluation.

Exemple :

resultat = + *  # (la multiplication a une priorité plus élevée)
resultat_parentheses = (5 + 2) *  # (les parenthèses changent l'ordre)

Structures de Contrôle

Les structures de contrôle sont essentielles en programmation car elles vous permettent de contrôler le flux d'exécution de votre programme. Python offre des instructions conditionnelles (comme if, elif et else) ainsi que des boucles (comme for et while) pour gérer les décisions et la répétition. Dans ce chapitre, nous allons explorer ces structures de contrôle en Python.

Instructions Conditionnelles (if, elif, else)

Les instructions conditionnelles vous permettent d'exécuter du code en fonction de certaines conditions. La structure de base est if, suivi d'une condition, et éventuellement elif (abréviation de "else if") et else. Voici un exemple :

age = 18

if age < 18:
    print("Vous êtes mineur.")
elif age == 18:
    print("Vous venez d'atteindre la majorité.")
else:
    print("Vous êtes majeur.")
  • L'instruction if vérifie la condition initiale.
  • Les instructions elif (optionnelles) permettent de vérifier d'autres conditions si la première condition est fausse.
  • L'instruction else (également facultative) est exécutée si aucune des conditions précédentes n'est vraie.

Boucles (for, while)

Les boucles permettent de répéter une partie de votre code plusieurs fois. Python offre deux types de boucles principaux : for et while.

Boucle for

La boucle for est utilisée pour itérer sur une séquence (comme une liste ou une chaîne de caractères) ou pour effectuer une action un certain nombre de fois. Voici un exemple :

for i in range(5):  # Répète fois (0, 1, 2, 3, 4)
    print("Répétition numéro", i)

Boucle while

La boucle while est utilisée pour répéter une instruction tant qu'une condition est vraie. Voici un exemple :

compteur = 0

while compteur < 5:
    print("Tour numéro", compteur)
    compteur += 1
  • Assurez-vous que la condition finit par devenir fausse pour éviter une boucle infinie.

Listes et Dictionnaires

Les listes et les dictionnaires sont des structures de données fondamentales en Python. Les listes permettent de stocker une collection ordonnée d'éléments, tandis que les dictionnaires permettent de stocker des paires clé-valeur. Dans ce chapitre, nous allons explorer comment utiliser les listes et les dictionnaires en Python.

Listes

Une liste est une collection d'éléments ordonnés et elle peut contenir des éléments de différents types de données. Pour créer une liste en Python, vous pouvez utiliser des crochets []. Voici comment créer une liste et y accéder :

ma_liste = [1, 2, 3, 4, 5]
  • Les éléments d'une liste sont indexés à partir de 0. Par exemple, ma_liste[0] accède au premier élément (1), ma_liste[1] accède au deuxième élément (2) et ainsi de suite.
  • Vous pouvez également utiliser des indices négatifs pour accéder aux éléments depuis la fin de la liste. Par exemple, ma_liste[-1] accède au dernier élément (5).

Manipulation de Listes

Les listes en Python sont flexibles et offrent de nombreuses méthodes pour les manipuler. Voici quelques-unes des opérations courantes sur les listes :

  • Ajouter un élément : Utilisez append() pour ajouter un élément à la fin de la liste.
  • Supprimer un élément : Utilisez remove() pour supprimer la première occurrence d'un élément donné.
  • Longueur d'une liste : Utilisez len() pour obtenir la longueur (le nombre d'éléments) de la liste.

Exemples :

ma_liste.append(6)  # Ajoute à la fin de la liste
ma_liste.remove(3)  # Supprime la première occurrence de dans la liste
longueur_liste = len(ma_liste)  # Renvoie 5

Dictionnaires

Un dictionnaire est une structure de données qui permet de stocker des données sous forme de paires clé-valeur. Les dictionnaires sont définis à l'aide d'accolades {} et peuvent contenir des données de types variés. Voici comment créer un dictionnaire en Python :

mon_dictionnaire = {"nom": "Alice", "age": 30, "ville": "Paris"}
  • Chaque paire clé-valeur est séparée par une virgule.
  • Vous pouvez accéder à une valeur en utilisant la clé correspondante : mon_dictionnaire["nom"] renverra "Alice".

Manipulation de Dictionnaires

Les dictionnaires en Python offrent des opérations pour ajouter, mettre à jour et supprimer des éléments. Voici quelques exemples d'opérations courantes :

  • Ajouter une paire clé-valeur : Utilisez une nouvelle clé pour ajouter une valeur au dictionnaire.
  • Mettre à jour une valeur : Accédez à la clé existante et affectez-lui une nouvelle valeur.
  • Supprimer une paire clé-valeur : Utilisez del pour supprimer une paire clé-valeur.

Exemples :

mon_dictionnaire["email"] = "alice@example.com"  # Ajoute une nouvelle paire clé-valeur
mon_dictionnaire["age"] =  # Met à jour la valeur de la clé "age"
del mon_dictionnaire["ville"]  # Supprime la paire clé-valeur avec la clé "ville"

Exemples Concrets

Les listes et les dictionnaires sont largement utilisés pour stocker et manipuler des données en Python. Voici quelques exemples concrets d'utilisation de ces structures de données :

  • Une liste de noms d'étudiants pour une classe.
  • Un dictionnaire de produits avec leurs prix et descriptions.
  • Une liste de tâches à faire avec des états de complétion.

Ces exemples pratiques vous aideront à comprendre comment utiliser efficacement les listes et les dictionnaires pour résoudre des problèmes réels.

Modules et Bibliothèques

Python est un langage de programmation extensible grâce à son système de modules et de bibliothèques. Les modules sont des fichiers Python contenant des fonctions et des variables que vous pouvez réutiliser, tandis que les bibliothèques sont des ensembles de modules qui fournissent des fonctionnalités spécifiques. Dans ce chapitre, nous allons explorer comment utiliser des modules et des bibliothèques en Python.

Introduction aux Modules

Un module Python est simplement un fichier contenant du code Python qui peut être importé dans d'autres programmes Python. Les modules sont utiles pour organiser et réutiliser du code.

Pour importer un module, utilisez l'instruction import. Par exemple, supposons que vous ayez un fichier nommé mon_module.py avec une fonction ma_fonction() à l'intérieur. Vous pouvez l'importer ainsi :

import mon_module

mon_module.ma_fonction()

Utilisation de Bibliothèques

Les bibliothèques Python sont des collections de modules qui offrent des fonctionnalités supplémentaires. Python a une vaste bibliothèque standard qui inclut des modules pour diverses tâches, de la manipulation de fichiers à la science des données.

Pour utiliser une bibliothèque, vous devez l'importer comme un module. Par exemple, la bibliothèque math offre des fonctions mathématiques avancées :

import math

racine_carree = math.sqrt(25)

Exploration de Bibliothèques Courantes

Python offre de nombreuses bibliothèques couramment utilisées pour divers domaines, notamment dans le cadre du développement d'outils d'automatisations de taches d'administration système :

  1. os : Le module os permet d'interagir avec le système d'exploitation, de créer, de supprimer ou de manipuler des fichiers et des répertoires et de gérer les chemins d'accès.
  2. shutil : Le module shutil fournit des opérations de haut niveau pour la copie et la suppression de fichiers et de répertoires, ainsi que la gestion des archives.
  3. subprocess : Le module subprocess permet d'exécuter des commandes système, des scripts et des programmes externes à partir de Python, ce qui est essentiel pour l'automatisation des tâches de ligne de commande.
  4. paramiko : Le module paramiko permet de se connecter à des serveurs distants via SSH et d'automatiser des tâches sur ces serveurs, ce qui est particulièrement utile pour la gestion des serveurs Linux.
  5. psutil : Le module psutil fournit des informations sur les processus en cours d'exécution sur la machine, permettant ainsi de surveiller les ressources système et de gérer les processus.
  6. requests : Le module requests permet d'effectuer des requêtes HTTP, ce qui est utile pour l'automatisation des interactions avec des services web et des API.
  7. smtplib : Le module smtplib permet d'envoyer des e-mails depuis Python, ce qui peut être utile pour l'automatisation des notifications et des alertes.
  8. schedule : La bibliothèque schedule permet de planifier des tâches périodiques ou récurrentes, ce qui est essentiel pour l'automatisation des tâches planifiées.
  9. sqlite3 : Le module sqlite3 permet d'interagir avec des bases de données SQLite, ce qui peut être utile pour l'automatisation de la gestion des données.
  10. pyVmomi : Si vous travaillez dans un environnement VMware, le module pyVmomi vous permet d'automatiser la gestion des machines virtuelles et de l'infrastructure vSphere.
  11. pywin32 : Pour les tâches d'administration système sous Windows, le module pywin32 fournit un accès à de nombreuses fonctionnalités Windows, telles que la gestion de registre et de services.
  12. OpenStack SDK : Si vous travaillez avec OpenStack, l'OpenStack SDK permet d'automatiser la gestion des ressources cloud, telles que les instances, les volumes et les réseaux.
  13. ansible : Bien qu'Ansible soit principalement une solution d'automatisation en dehors de Python, il peut être utilisé en conjonction avec Python pour l'automatisation de la configuration et de la gestion de serveurs.
  14. Flask : Si vous souhaitez créer une interface web pour l'automatisation des tâches d'administration système, Flask est un framework web Python populaire qui peut être utilisé à cet effet.

Ces modules et bibliothèques Python sont largement utilisés pour automatiser une variété de tâches d'administration système, qu'il s'agisse de gestion de fichiers, de surveillance de processus, de déploiement de serveurs, de gestion de bases de données ou d'autres activités liées à l'administration système. Le choix des modules dépendra des besoins spécifiques de votre projet d'automatisation.

L'exploration de ces bibliothèques vous permettra d'étendre considérablement les fonctionnalités de base de Python pour répondre à des besoins spécifiques.

Gestion des Erreurs

La gestion des erreurs est une partie cruciale de la programmation. En Python, vous pouvez anticiper et gérer les erreurs pour garantir que votre programme se comporte de manière robuste, même en cas de situations inattendues. Dans ce chapitre, nous allons explorer la gestion des erreurs en Python.

Les Exceptions en Python

En Python, les erreurs sont appelées "exceptions". Une exception se produit lorsqu'une opération ne peut pas être effectuée correctement. Par exemple, une division par zéro provoque une exception.

Voici un exemple d'utilisation de try et except pour gérer une exception de division par zéro :

try:
    resultat = 10 / 0
except ZeroDivisionError:
    print("Division par zéro n'est pas autorisée.")
  • Le bloc try contient le code qui peut générer une exception.
  • Le bloc except spécifie quel type d'exception vous souhaitez gérer et définit le code à exécuter en cas d'exception.

Types d'Exceptions Courants

Python propose de nombreux types d'exceptions pour gérer différents types d'erreurs. Voici quelques-unes des exceptions courantes :

  • ZeroDivisionError : Se produit lorsqu'une division par zéro est tentée.
  • ValueError : Se produit lorsqu'une fonction reçoit un argument avec un type incorrect.
  • TypeError : Se produit lorsqu'une opération est effectuée sur un type de données incorrect.
  • FileNotFoundError : Se produit lorsqu'un fichier que vous essayez d'ouvrir n'existe pas.

Il est important de connaître ces exceptions courantes pour anticiper et gérer les erreurs dans votre code.

Utilisation de finally

En plus de try et except, Python propose également le bloc finally. Ce bloc est exécuté quel que soit le résultat (exception ou pas). Il est souvent utilisé pour effectuer des opérations de nettoyage, telles que la fermeture de fichiers.

Exemple d'utilisation de finally :

try:
    fichier = open("mon_fichier.txt", "r")
    contenu = fichier.read()
except FileNotFoundError:
    print("Le fichier n'existe pas.")
finally:
    fichier.close()  # Assurez-vous de fermer le fichier, que l'exception se produise ou non.

L'instruction raise

Vous pouvez également générer vos propres exceptions en utilisant l'instruction raise. Cela peut être utile lorsque vous souhaitez signaler une erreur spécifique à votre programme.

Exemple d'utilisation de raise :

def diviser(a, b):
    if b == 0:
        raise ValueError("La division par zéro n'est pas autorisée.")
    return a / b

try:
    resultat = diviser(10, 0)
except ValueError as e:
    print(e)
  • Vous pouvez personnaliser le message d'erreur en utilisant raise.
  • L'exception générée est du type ValueError avec le message spécifié.

Utilisation de assert

L'instruction assert est utilisée pour vérifier une condition. Si la condition est fausse, une exception AssertionError est levée. Cela peut être utile pour effectuer des vérifications de base dans votre code.

Exemple d'utilisation de assert :

age = 15
assert age >= 18, "L'âge doit être d'au moins ans pour accéder."

Si l'âge est inférieur à 18, une exception AssertionError est levée avec le message spécifié.

La gestion des erreurs en Python est un élément essentiel pour rendre vos programmes plus robustes et fiables. En comprenant les exceptions courantes et en utilisant try, except, finally, raise et assert, vous pouvez gérer efficacement les situations imprévues.

Conclusion

Si vous souhaitez approfondir vos connaissances en Python, il existe de nombreuses ressources disponibles, notamment des cours en ligne, des tutoriels, des livres et des forums de discussion. La pratique régulière est la clé pour devenir un développeur Python compétent, alors n'hésitez pas à travailler sur des projets personnels, à résoudre des problèmes et à collaborer avec d'autres développeurs.

Enfin, rappelez-vous que Python est un outil puissant pour la réalisation de vos idées et la résolution de problèmes. Que vous cherchiez à automatiser des tâches ennuyeuses, à analyser des données complexes, à développer des applications web ou à améliorer les processus de développement DevOps, Python peut vous aider à atteindre vos objectifs.

Plus d'infos

Livres gratuits

Livres

MOOC