29/03/2025

Scripting

Écrire son premier script Python : guide pour débutants

I. Présentation

Python est l’un des langages de programmation les plus populaires et accessibles aujourd’hui, utilisé dans des domaines aussi variés que le développement web, la cybersécurité, l’analyse de données ou encore l’intelligence artificielle. Les points forts de Python sont sa simplicité de syntaxe, sa lisibilité et sa vaste communauté. Cela en fait un choix idéal, notamment pour les débutants souhaitant faire leurs premiers pas dans le monde du développement.

Python est d’ailleurs le troisième langage de programmation le plus utilisé au monde en 2024 !

À titre personnel, j’utilise Python pour automatiser de nombreuses tâches et travailler dans le domaine de la cybersécurité. Que ce soit pour m’aider à analyser rapidement un système, une application, automatiser certaines phases de la rédaction de mes rapports ou présenter visuellement des résultats, j’utilise Python au quotidien et ai appris à l’utiliser au fur et à mesure de mes besoins et idées.

Dans cet article, j’espère vous aider à vous mettre le pied à l’étriller et démarrer votre aventure avec Python ! Nous allons nous concentrer sur l’écriture de votre premier script Python, en détaillant les bases pour comprendre le langage et le mettre en pratique. Si vous êtes prêts à apprendre Python, poursuivez la lecture de cet article !

II. Quel éditeur utiliser pour développer en Python ?

Avant de commencer, il est important de se doter des bons outils. Je parle bien sûr des IDE (Integrated Development Environment), ces interfaces graphiques qui facilitent le travail du développeur en intégrant de nombreuses fonctionnalités comme la gestion des modules, la coloration du texte, la correction du code, et même l’intégration d’assistants de développement basés sur l’intelligence artificielle.

Pour ce premier article d’introduction et pour simplifier vos premiers essais, nous allons faire simple, des environnements comme IDLE (installé par défaut avec Python sous Windows), VS Code ou PyCharm (un peu plus avancé) sont de bons choix, même si en soi, un simple éditeur de texte suffit ! Dans cet article, je vais utiliser VS Code (Visual Studio Code), qui existe sous Linux et sous Windows, comme IDE Python.

Pour installer Python3 et Visual Studio Code sur votre système Windows, je vous oriente vers cet article dédié : 

Pour installer Visual Studio Code sur votre système Linux, je vous oriente vers cet article dédié :

Comme indiqué dans ces deux articles, VS Code propose une interface simple d’utilisation qui permet d’exécuter des scripts Python très simplement. Suite à son installation (et à celle de Python sous Windows), nous sommes maintenant opérationnels pour faire nos premiers pas avec Python.

III. Les bases à connaitre pour apprendre le Python

A. Python : Un langage interprété

Python est un langage interprété, cela signifie que le code est exécuté ligne après ligne par un programme appelé interpréteur Python (que vous avez installé précédemment). Contrairement aux langages compilés, comme C ou Java, Python ne nécessite pas de transformation préalable du code source en un fichier exécutable, les scripts sont utilisables tels quels. Cela offre plusieurs avantages :

  • Facilité d'exécution : pas besoin de compiler le code, il suffit de l’écrire et de le lancer avec une commande comme "python3 fichier.py" ou "python.exe fichier.py". (Par contre, il faut que l’interpréteur soit présent sur le système, ce qui est par défaut le cas sous Linux).
  • Retour immédiat des erreurs : si une erreur est détectée, l’interpréteur s’arrête à la ligne concernée et fournit un message d’erreur, ce qui simplifie le débogage et donc accélère le développement.
  • Interactivité : Python dispose d’un mode interactif accessible en tapant simplement "python3" dans un terminal (Linux) ou en exécutant "python.exe" sous Windows. Ce mode permet de tester des instructions directement et de visualiser leur résultat instantanément.

Voici un exemple simple d’utilisation de Python en mode interactif sous Windows depuis un terminal PowerShell :

Exécution de deux instructions en mode interactif de python.
Exécution de deux instructions en mode interactif de python.

Ici, je peux interagir en Python instruction par instruction, ce qui est différent du "mode script" dans lequel on exécute un ensemble d’instructions à la chaine. D’ailleurs, la seconde instruction contient une erreur et j’ai un retour immédiat de l’interpréteur.

Même si vous utilisez un IDE puissant tel que pyCharm ou Visual Studio Code, il est toujours utile d’avoir un terminal Python interactif à côté pour tester rapidement vos instructions sans altérer votre script en cours de développement. Cela permet aussi d’explorer plus rapidement les fonctions d’un module ou les méthodes d’un objet.

B. Les bases de la syntaxe Python

Python est un langage connu pour sa lisibilité et sa simplicité. Une des particularités de Python est l’utilisation de l’indentation pour structurer le code, en remplacement des accolades utilisées dans d’autres langages comme C ou Java. Cela le rend plus agréable et simple à lire, mais aussi à écrire !

En Python, chaque bloc de code doit être correctement aligné sous une instruction, sous peine de générer une erreur. On ne peut donc pas faire ce que l’on veut et ajouter des espaces ou des tabulations là où bon nous semble ! Par exemple :

Affichage d’une erreur d’indentation lors de l’exécution d’instructions Python.
Affichage d’une erreur d’indentation lors de l’exécution d’instructions Python.

Dans cet exemple, dont nous étudierons les instructions plus tard, j’ai mis un espace en trop à la deuxième ligne. Résultat, l’interpréteur Python m’indique une erreur ! 

Les bonnes pratiques de développement Python (définie par la norme PEP 8) recommandent l’utilisation de 4 espaces pour chaque cran d’indentation.

L’indentation est importante, et c’est surement ce qui causera vos premières erreurs en Python lorsque vous commencerez à utiliser des boucles ou des fonctions. Retenez bien cette erreur "IndentationError: unexpected indent", car vous avez de fortes chances de la croiser prochainement si vous débutez.

Autre point concernant la syntaxe du code, les commentaires en Python sont ajoutés avec le caractère "#" pour indiquer une ligne à ignorer par l’interpréteur. Comme dans tout langage, ils permettent d’expliquer le fonctionnement du code et faciliter sa lecture. Exemple :

# Ceci est un commentaire
if 5 > 3:
    print("Cinq est plus grand que trois")  # Indentation obligatoire

N’oubliez pas de commenter votre code, notamment lorsque vous écrirez des scripts plus complexes, mais aussi pour vous créer des petits scripts "mémo" tout en suivant cet article.

IV. Écrire votre premier script Python

A. Créer et enregistrer un fichier Python (.py)

Une fois que VS Code est installé et prêt à être utilisé pour Python, nous pouvons créer un nouveau fichier, le nommer comme bon nous semble et surtout, lui donner l’extension ".py" (pour Python) : 

Création d’un nouveau fichier dans Visual Studio Code.
Création d’un nouveau fichier dans Visual Studio Code.

Vous pourrez ensuite l’enregistrer dans n’importe quel dossier. Voilà ! Votre premier script Python est né, même s’il ne fait pour l’instant rien du tout. Son contenu apparait à présent dans l’espace principal de VS Code.

B. Ajouter une première ligne de code simple

Nous allons à présent apprendre à utiliser une première instruction Python très simple à l’aide de la fonction "print()". Cette fonction est l'une des plus basiques en Python. Elle permet d’afficher du texte ou le résultat d’une opération à l’écran pour vous renvoyer des informations sur son état d’avancement ou simplement récupérer le résultat de ses opérations. Voici un exemple d’utilisation : 

print("Ma première instruction Python !)"

Cette ligne est donc à insérer ici dans VS Code, en vous assurant que votre fichier “.py” est bien celui en cours d’édition : 

Modification dans l’espace édition de VS Code.
Modification dans l’espace édition de VS Code.

C. Exécuter un script Python à partir du terminal

Une fois cette instruction saisie dans l’espace code de VS Code, vous pouvez, au choix, utiliser le bouton "Run" évoqué dans le tutoriel d’installation pour exécuter un script Python.

Exécution du code Python via le bouton Run de VSCode.
Exécution du code Python via le bouton Run de VSCode.

Sinon, vous pouvez exécuter votre programme à l’aide de Python dans le terminal de Visual Studio Code (ou terminal système si vous n’utilisez pas VS Code) : 

# Sous Windows
python.exe monprogramme.py

# Sous Linux
python3 monprogramme.py

Voici un exemple de résultat avec VS Code sous Windows :

Exécution du code Python via le terminal (sous Windows).
Exécution du code Python via le terminal (sous Windows).

Petite subtilité à connaitre : si l’on modifie notre code, puis, que l’on clique sur le bouton “Run” de VS Code, cela a pour effet de sauvegarder ces modifications dans le fichier ouvert, puis de l’exécuter.

V. Les concepts de base en Python

Nous venons de créer notre premier script Python ! Mais, celui-ci ne fait rien d’intéressant pour l’instant. À présent, nous allons en apprendre plus sur les bases du code Python pour pouvoir faire plus de choses dans notre script.

A. Les variables : assignation et utilisation

Comme dans tous les langages, les variables sont des conteneurs qui permettent de stocker des valeurs, de les garder temporairement en mémoire pour les réutiliser dans notre programme. En Python, leur déclaration est simple : il suffit de choisir un nom et de lui attribuer une valeur à l’aide du symbole "=". Il n’est pas nécessaire de définir à l’avance leur type (chaîne de caractères, entier, flottant, etc.) comme dans d’autres lagunages. On dit que Python est un langage typé dynamiquement, car les types de variables sont déterminés et vérifiés au moment de l'exécution plutôt que pendant la compilation.

Voici quelques exemples de création de variables en Python :

x = 10         # Entier
nom = "Alice"  # Chaîne de caractères
pi = 3.14      # Nombre décimal (float)

Les variables peuvent être utilisées dans des calculs, des affichages ou transmises à des fonctions :

age = 25
print(f"J'ai {age} ans.")  # Affiche : J'ai 25 ans.

Dans l’instruction précédente, le "f" placé avant les guillemets indique qu’il s’agit d’une f-string (abréviation de formatted string). Il permet d’insérer directement des valeurs ou expressions dans une chaîne de caractères, en les entourant avec des accolades "{ }".

Python étant un langage à typage dynamique, vous pouvez changer le type d’une variable sans redéclaration :

x = 5 # Ici, x contient un entier
x = "Cinq"  # Maintenant x contient une chaîne de caractères

Cependant, pour une meilleure lisibilité, il est recommandé de maintenir des noms explicites et des types cohérents.

N’hésitez pas à copier-coller ces exemples de code dans VS Code, à les modifier (quitte à provoquer des erreurs) et à les exécuter. L’essentiel de l’apprentissage d’un langage de programmation se fait via la pratique.

B. Les structures conditionnelles (if, else, elif)

Les structures conditionnelles permettent d’exécuter un bloc de code uniquement si une condition est remplie. Python utilise les mots-clés "if" (qui signifie "si"), "elif" (équivalent de "else if", ce qui veut dire "sinon si") et "else" (qui signifie "sinon"). Exemple :

age = 18
if age < 18:
    print("Mineur")
elif age == 18:
    print("Tout juste majeur")
else:
    print("Majeur")

Les conditions en Python peuvent utiliser des opérateurs de comparaison (==, !=, <, >, <=, >=) ou des opérateurs logiques (and, or, not). Exemple avec des opérateurs de comparaison :

temperature = 30
if temperature > 25 and temperature < 35:
    print("Il fait chaud.")

Ici, nous avons utilisé deux conditions à remplir pour exécuter le code à l’intérieur de notre "if". La température doit être à plus de 25 et moins de 35. Voici un autre exemple avec un "or" : 

temperature = 60
if temperature < 0 or temperature > 35:
    print("Température anormale.")

Si vous avez bien suivi, si ce second bout de code est exécuté avec une température à "20", nous n’aurons aucun retour dans le terminal, faites le test ! 

C. Les boucles (for, while)

Les boucles permettent de répéter une action plusieurs fois. Python propose deux types de boucles :

  • Boucle "for" : utilisée pour parcourir des séquences comme des listes ou des plages de nombres.
for i in range(5):  # Parcourt les nombres de 0 à 4
    print(f"Nombre : {i}")
  • Boucle "while" : utilisée pour répéter une action tant qu’une condition est vraie.
compteur = 0
while compteur < 5:
    print(f"Compteur : {compteur}")
    compteur += 1  # Incrémentation

Relisez bien votre code ! Il faut faire attention aux boucles infinies : elles se produisent si la condition d’arrêt n’est jamais remplie et peuvent consommer toutes vos ressources. C’est la raison pour laquelle lequel dans la boucle "while", nous ajoutons "1" à notre compteur à chaque fin de boucle.

D. Les fonctions : définir et appeler une fonction

Les fonctions permettent d’organiser le code en blocs réutilisables. Une fonction se définit avec le mot-clé "def" suivi d’un nom, de parenthèses pour les paramètres et d’un deux-points (":"). Elles sont à déclarer en début de script afin que l’on puisse y faire référence par la suite. Voici un exemple de fonction :

def saluer(nom):
	print(f"Bonjour, {nom} !")

Pour appeler une fonction :

saluer("Alice")  # Affiche : Bonjour, Alice !

Nous pouvons aussi faire en sorte qu’une fonction nous retourne des informations. Il faut alors renseigner l’information à retourner à l’aide de "return" :

def addition(a, b):
	return a + b

resultat = addition(5, 3)
print(resultat)  # Affiche : 8

Comme vous pouvez le voir, la valeur retournée par la fonction “addition” sera stockée dans la variable “resultat”. Égarement, nous venons de voir comment envoyer des paramètres à une fonction, à l’aide d’informations passées entre parenthèse lors de son appel (“addition(5, 3”). Il faut alors que la fonction soit écrite pour recevoir ces paramètres (“addition(a, b):”). Elles seront alors stockées dans des variables (“a” et “b”) valides qu’à l’intérieur de cette fonction.

E. Manipuler des listes, tuples et dictionnaires

Nous avons encore trois types de données importants à voir en Python : les listes, les tuples et les dictionnaires. Chaque structure a ses particularités et répond à des besoins spécifiques.

  • Les listes

Les listes sont des collections ordonnées, modifiables et indexées, ce qui signifie que chaque élément a une position (indice) dans la liste. Elles sont utilisées pour stocker une série d’éléments, même de types différents. Voici quelques exemples d’opérations utilisant des listes :

# Déclaration d’une variable de type liste
fruits = ["pomme", "banane", "cerise"]
print(fruits[0])  # Affiche : pomme (élément à l’indice 0)

# Ajoute "orange" à la fin de la liste
fruits.append("orange")  
print(fruits)  # Affiche : ['pomme', 'banane', 'cerise', 'orange']

# Modifie l’élément à l’indice 1
fruits[1] = "mangue"  
print(fruits)  # Affiche : ['pomme', 'mangue', 'cerise', 'orange']

# Supprime l’élément à l’indice 2
del fruits[2]  
print(fruits)  # Affiche : ['pomme', 'mangue', 'orange']

Les listes sont le plus simple des 3 types que nous allons étudier ici, leur utilisation est plutôt intuitive une fois que l’on a compris le système d’indice (qui commence toujours par 0 !).

  • Les tuples

Les tuples ressemblent aux listes, mais ils sont immuables, cela signifie que leur contenu ne peut pas être modifié une fois créé. Ils sont utilisés lorsque vous souhaitez garantir que les données ne seront pas altérées, ce qui correspond à des cas de figures plus rares lorsque l’on débute. Voici quelques exemples d’utilisation des tuples (nous utiliserons des parenthèses plutôt que des crochets) :

# Déclaration d’un tuple
couleurs = ("rouge", "bleu", "vert")
print(couleurs[1])  # Affiche : bleu (élément à l’indice 1)

# Tentative de modification d’un tuple (génère une erreur)
couleurs[0] = "jaune"  # Erreur : les tuples sont immuables

# Les tuples peuvent être utilisés dans des boucles
for couleur in couleurs:
    print(couleur)

Les tuples sont idéaux pour des données constantes, par exemple des jours de la semaine ou des coordonnées GPS.

  • Les dictionnaires

Les dictionnaires sont des collections qui associent des clés uniques à des valeurs. Ils permettent de modéliser des relations entre des données, comme des paires clé-valeur. Par exemple, on peut créer un dictionnaire nommé "personne" qui aura pour clés "nom" et "age" : 

# Création d’un dictionnaire contenant 2 clés
personne = {"nom": "Alice", "age": 25}

Nous pouvons ensuite affiche une valeur de notre dictionnaire en utilisant sa clé : 

print(personne["nom"])  # Affiche : Alice (valeur associée à la clé "nom")

Voici d’autres exemples, notamment avec une suppression : 

personne["ville"] = "Paris"  # Ajoute une nouvelle clé/valeur
print(personne)  # Affiche : {'nom': 'Alice', 'age': 25, 'ville': 'Paris'}

del personne["age"]  # Supprime la clé "age"
print(personne)  # Affiche : {'nom': 'Alice', 'ville': 'Paris'}

Les dictionnaires sont parfaits pour représenter des ensembles de données structurées, comme des objets ou des enregistrements.

VI. Exemple pratique : créer un script simple avec Python

Maintenant que nous avons acquis quelques connaissances sur les instructions et concepts basiques de Python, nous allons créer un simple script. Dans Visual Studio Code, commencez par un nouveau fichier ".py" comme nous l’avons vu plus haut.

A. Récupérer une entrée utilisateur avec input()

Nous allons commencer par dire bonjour à notre utilisateur :

print("Bonjour !")

Puis, nous allons lui demander son prénom, en utilisant l’instruction “input()” qui permet de marquer une pause en attendant que notre utilisateur saisisse un texte, que nous allons stocker dans une variable : 

print("Bonjour !")
nom_utilisateur = input()
print(f"Enchanté {nom_utilisateur}, moi, c’est Script !")

Une fois que ce bout de code est dans notre script, nous pouvons le tester à l’aide du bouton "Run" de Visual Studio Code :

Exécution de notre script Python via le terminal de VS Code.
Exécution de notre script Python via le terminal de VS Code.

Ou bien en exécutant notre script à l’aide de "python3 monprogramme.py" (Linux) ou "python.exe monprogramme.py" (Windows) dans l’onglet "Terminal" :

Exécution de notre script Python via le terminal de VS Code.

Dans tous les cas, notre script attend bien une saisie de notre part avant de continuer son exécution. Nous pourrions aussi être plus explicites en demandant clairement le nom de notre utilisateur, cela en utilisant l’instruction "input()" de la façon suivante : 

print("Bonjour !")
nom_utilisateur  = input("Comment t’appelles-tu ? : ")
print(f"Enchanté {nom_utilisateur}, moi, c’est Script !")

N’hésitez pas à tester ce code et à le modifier selon vos envies, et surtout à faire des erreurs !

B. Effectuer une opération en fonction de l'entrée utilisateur

À présent, nous allons améliorer notre script en utilisant le concept des conditions et apprendre à compter le nombre de lettres dans une chaine de caractère. Nous allons donner une réponse différente en fonction de la longueur du prénom fournit. Commençons par compter le nombre de lettres d’une chaine de caractères. Cela peut être fait à l’aide de la fonction "len()" : 

longeur_prenom = len(nom_utilisateur)
print(longueur_prenom)

En exécutant ce code (en vous assurant bien que la variable "nom_utilisateur" soit déclarée), vous verrez en retour terminal le nombre de caractères de votre nom. À présent, nous pouvons utiliser des conditions pour avoir une réponse différentes de notre script en fonction de si notre nom est plutôt long ou court :

print("Bonjour !")
nom_utilisateur  = input("Comment t’appelles-tu ? : ")
print(f"Enchanté {nom_utilisateur}, moi, c’est Script !")

longueur_prenom = len(nom_utilisateur)
if longueur_prenom > 5 :
	print(f"Ton prénom fait {longueur_prenom} caractères, c'est plutôt long !")
else:
	print(f"Ton prénom fait {longueur_prenom} caractères, c'est plutôt court !")

Nous utilisons une condition "supérieur" à "5" dans l’instruction "if", puis une instruction "else" au cas où cette condition n’est pas remplie (Attention à l’indentation !). Voici le résultat de deux exécutions du même programme avec deux prénoms différents :

Exécution du code Python avec des conditions et une saisie utilisateur.
Exécution du code Python avec des conditions et une saisie utilisateur.

Nous allons encore une fois améliorer notre script en utilisant le concept des boucles et des conditions, par exemple en demandant combien de personnes sont avec l’utilisateur, ainsi que leurs prénoms. Nous allons aussi en profiter pour commenter notre script, qui commence à devenir plus complexe.

Voici le code Python de notre script "final" :

print("Bonjour !")
nombre_utilisateur = input("Combien y a-t-il de personne avec toi ?  : ")

# L'index (souvent abrégé “i”) va permettre de compter le nombre d'itérations de la boucle
index = 0

# Boucle basée sur le nombre d'utilisateurs
# Par défaut, le type renvoyé par la fonction "input()" est une "string"
# Nous devons la convertir en int grâce à la syntaxe "int(variable)"
while index < int(nombre_utilisateur):
	nom_utilisateur = input("Comment t’appelles-tu ? : ")
	print(f"Enchanté {nom_utilisateur}, moi, c’est Script !")

	# Récupération de la longeur du prénom avec la fonction "len()"
	longueur_prenom = len(nom_utilisateur)
	#
	if longueur_prenom > 5 :
    	  print(f"Ton prénom fait {longueur_prenom} caractères, c'est plutôt long !")
	else:
    	  print(f"Ton prénom fait {longueur_prenom} caractères, c'est plutôt court !")

	# Nous arrivons à la fin d'une boucle, nous devons
	# incrémenter (ajouter 1) à l'index pour éviter
	# une boucle infinie
	index += 1

# On adapte notre "au revoir" en fonction du
# nombre de personne
if int(nombre_utilisateur) > 1 :
  print("Au revoir tout le monde !")
else:
  print("Au revoir !") 

Pour que ce soit plus clair, je vous mets ici une capture d’écran de ma vue Visual Studio Code, ce qui permet de visualiser concrètement les bénéfices d’un IDE : coloration syntaxique, numérotation des lignes, soulignement des erreurs de syntaxe potentielle, etc. : 

Visualisation du code du script dans Visual Studio Code.
Visualisation du code du script dans Visual Studio Code.

Bien sûr, ce script peut largement être amélioré. Regardez, par exemple, ce qu’il se passe si vous ne répondez rien aux questions posées ou si vous répondez avec un texte au lieu d’un chiffre lors de la demande du nombre d’utilisateurs. Pour aller plus loin, voici quelques idées d’améliorations : 

  • Vérifier que l’utilisateur a bien saisi un chiffre entre 0 et 10 lors de la question “Combien y a-t-il de personne avec toi ?” à l’aide d’une boucle "while", d’une condition et de la fonction "type(variable)" qui permet de vérifier le type d’une variable.
  • Vérifier qu’une réponse a été donnée lors de la demande du nom utilisateur à l’aide de la fonction "len(variable)" et reposer la question si la réponse est vide (ou trop grande).
  • Permettre à l’utilisateur de relancer le programme sans avoir à le réexécuter manuellement à l’aide d’une boucle "while" et d’une réponse accepter "O" (oui) ou "N" (non) uniquement.
  • Utiliser une fonction pour déterminer si le nom est long ou court

C. Utiliser des modules intégrés

Python dispose d’un vaste écosystème de bibliothèques, qui sont des ensembles de fonctionnalités prêtes à l’emploi. Certaines font partie de la bibliothèque standard (installée par défaut avec Python), tandis que d’autres, développées par la communauté, peuvent être téléchargées et installées en fonction de vos besoins.

L’intérêt d’une bibliothèque Python (également appelée "module" en Python) est d’étendre les fonctionnalités du langage sans avoir à tout coder soi-même. Cela permet de gagner du temps, de simplifier le code et de profiter d’outils déjà optimisés par d’autres développeurs.

Imaginez que Python est une boîte à outils de base. Les bibliothèques standard sont comme des outils essentiels (tournevis, marteau), tandis que les bibliothèques communautaires, disponibles sur PyPI (https://www.pypi.org), sont des outils spécialisés que vous pouvez ajouter en fonction de vos projets (perceuse, scie circulaire).

Grâce aux bibliothèques, Python devient très polyvalent : calculs mathématiques avancés, manipulation de dates, création d’interfaces graphiques, gestion de données scientifiques, interaction avec des API, etc. Elles vous permettent de vous concentrer directement sur l’essentiel de votre projet sans réinventer la roue.

Pour utiliser une bibliothèque, il faut l’importer dans votre script avec l’instruction "import <nom>", par exemple :

import math
import random

Ensuite, leurs fonctions seront accessibles dans votre script. Il faut pour cela préfixer les fonctions que vous souhaitez utiliser par le nom de la bibliothèque, par exemple :

import math
print(math.sqrt(16))  # Affiche : 4.0

Lire la documentation d’une bibliothèque est important pour comprendre ses fonctionnalités et son utilisation. Voici les documentations officielles des deux bibliothèques que nous allons utiliser dans cet article :

Bien que la documentation puisse sembler complexe pour un débutant, apprendre à s’y référer est une compétence clé pour progresser. Python regorge de milliers de bibliothèques, et savoir où chercher les bonnes informations vous permettra de tirer le meilleur parti de Python, mais surtout de passer plus rapidement au cœur du développement de votre projet.

  • Le module math : effectuer des calculs avancés

Le module "math" fournit des fonctions mathématiques avancées comme le calcul de racines carrées, l’utilisation de constantes mathématiques et bien plus encore. Il est utilisé dans de très nombreux contextes scientifiques ou statistiques. Voici quelques exemples d’utilisation, notez que toutes les fonctions provenant de "math" sont préfixées d’un "math" :

import math

# Calcul de la racine carrée
nombre = 16
racine = math.sqrt(nombre)
print(f"La racine carrée de {nombre} est {racine}")

# Utilisation de la constante (variable non modifiable) pi
rayon = 5
aire = math.pi * rayon**2
print(f"L'aire d'un cercle de rayon {rayon} est {aire:.2f}")

# Calcul du factoriel
n = 5
factoriel = math.factorial(n)
print(f"Le factoriel de {n} est {factoriel}")
  • Le module "random" : générer des nombres aléatoires

Le module "random" permet de générer des nombres ou de sélectionner des éléments de manière aléatoire. Cela peut être utile pour créer des jeux, simuler des données ou même générer des mots de passe.

Exemples de fonctions utiles :

  • "random.randint(a, b)" : génère un nombre entier aléatoire entre a et b.
  • "random.choice(sequence)" : sélectionne un élément aléatoire d’une liste.
  • "random.shuffle(sequence)" : mélange aléatoirement les éléments d’une liste.
import random

# Générer un nombre entier aléatoire entre 1 et 10
nombre_aleatoire = random.randint(1, 10)
print(f"Nombre aléatoire généré : {nombre_aleatoire}")

# Sélectionner un élément aléatoire dans une liste
fruits = ["pomme", "banane", "cerise", "orange"]
fruit_choisi = random.choice(fruits)
print(f"Fruit choisi au hasard : {fruit_choisi}")

# Mélanger une liste
random.shuffle(fruits)
print(f"Liste mélangée : {fruits}")

Enfin, pour vous aider à rapidement prendre en main un module, voici une petite astuce. Dans un terminal interactif Python (et aussi dans un script), vous pourrez lister l’ensemble des fonctions d’un module à l’aide de la fonction "dir()" :

Lister rapidement les fonctions d’un module avec la fonction “dir()” en Python.
Lister rapidement les fonctions d’un module avec la fonction "dir()" en Python.

D. Création d’un jeu basé sur random

Petit exercice ! À l’aide du module "random" d’une boucle et des conditions, créez un petit jeu du type “Juste prix”. Voici les règles, très simples : 

  • Au lancement, le programme génère un nombre entre 1 et 100
  • Dans une boucle, le programme demande la saisie d’un nombre à l’utilisateur
  • Si la proposition est plus grande que le nombre choisi par le programme, ce dernier répond avec un “C’est plus petit” et inversement si la proposition est plus petit.
  • Le programme s’arrête lorsque l’utilisateur a proposé le bon nombre, et affiche le nombre d’essais qu’il a fallu à l’utilisateur.

Essayez de jouer le jeu et de ne pas regarder la réponse trop vite ! C’est avec cet exercice que j’ai appris à développer, il y a maintenant prêt de 17 ans, sur un site qui n’existe plus en tant que tel : lesiteduzero (OpenClassRooms) :).

Voici une possibilité de réponse à cet exercice :

Exemple de code Python pour le jeu du Juste prix.

Et voici le résultat de ma première partie : 7 essais :).

Exécution du programme “justprix.py”.
Exécution du programme "justprix.py".

Encore une fois, je vous fais quelques propositions pour aller plus loin et corser un peu les choses : 

  • Limiter le nombre d'essais : ajoutez une limite, par exemple 10 essais maximum, après lesquels le joueur perd la partie.
  • Ajouter un mode de difficulté : permettez à l'utilisateur de choisir entre plusieurs niveaux de difficulté.
  • Donner des indices supplémentaires : par exemple, indiquez si la différence entre la proposition et le nombre à deviner est grande ou petite.
  • Chronométrer la partie : utilisez le module “time” pour calculer la durée totale du jeu. Affichez le temps en secondes ou minutes une fois le jeu terminé.

Avec quelques instructions et concepts basiques de Python, nous venons de créer un jeu infini basé sur la fonction “random()” !

VII. Aller plus loin avec Python : modules et bonnes pratiques

A. Les bibliothèques simples à prendre en main 

Je vous recommande, pour vous exercer, de vous intéresser aux bibliothèques Python suivantes, qui sont très utiles et relativement simples à prendre en main. Si vous n’êtes pas inspirés, je vous donne quelques idées d’exercices qui permettent de les utiliser : 

  • Re (documentation) : permet de rechercher, extraire ou manipuler des chaînes de caractères en utilisant des motifs.
    • Exercice : créez un programme qui valide des adresses e-mail ou recherche des numéros de téléphone dans un texte.
  • Requests (documentation) : simplifie les interactions avec des sites web ou des API en envoyant des requêtes HTTP (GET, POST).
    • Exercice : écrivez un programme qui récupère les données d’une API publique et affiche les résultats. Par exemple, une API météo ou de films.
  • Json (documentation) : sert à lire, écrire et manipuler des fichiers JSON, un format standard pour échanger des données.
    • Exercice : chargez un fichier JSON contenant des informations sur des utilisateurs et affichez leurs noms et âges.
  • Ftplib (documentation) : interagit avec des serveurs FTP pour télécharger ou envoyer des fichiers.
    • Exercice : connectez-vous à un serveur FTP public, explorez ses dossiers et téléchargez un fichier.
  • Csv (documentation) : manipule les fichiers CSV, un format courant pour stocker des données tabulaires.
    • Exercice : écrivez un programme qui lit un fichier CSV contenant des notes d’élèves et calcule leur moyenne.

D’expérience, ces petits exercices vous serviront forcément dans le futur ! Même si cela dépend largement des contextes dans lesquels vous utiliserez Python par la suite.

B. Conseils sur l'écriture propre et lisible en Python

Au-delà de connaitre les bases du langage Python et les modules principaux, l’un des principes de base concernant ce langage (et de nombreux autres) et de savoir écrire du code lisible et maintenable dans le temps. Voici donc quelques conseils et bonnes pratiques à ce sujet :

  • Adoptez le style PEP 8: Le PEP 8 est le guide officiel des bonnes pratiques en Python. Voici quelques règles issues de ce guide :
    • Utilisez 4 espaces pour l’indentation (évitez les tabulations).
    • Laissez une ligne vide entre deux fonctions ou classes.
    • Donnez des noms explicites à vos variables et fonctions (par exemple, calculer_moyenne au lieu de cm).
    • Limitez la longueur des lignes à 79 caractères pour une meilleure lisibilité.

Lien du guide Python PEP 8 : peps.python.org/pep-0008/ 

  • Commentez votre code : ajoutez des commentaires pour expliquer les parties complexes ou importantes (sans en faire trop), une fois que vous aurez écrit quelques scripts et devrez revenir sur le premier, vous vous rendrez compte que cela n’est pas si simple de se rappeler pourquoi nous avons fait les choses telles qu’elles sont, même si nous en sommes l’auteur. Utilisez également des docstrings pour documenter les fonctions :
def ajouter(a, b):
	"""
	Ajoute deux nombres et retourne le résultat.
	:param a: Premier nombre
	:param b: Deuxième nombre
	:return: Somme des deux nombres
	"""
  • Structurez votre code : organisez votre code en fonctions pour éviter les répétitions et séparez les fichiers si votre programme devient trop long. Par exemple, placez les fonctions dans un fichier distinct et importez-les.
  • Utilisez des outils d’analyse de code : des outils comme flake8 ou black peuvent vous aider à vérifier que votre code respecte les standards PEP 8.
  • Testez et déboguez régulièrement : testez vos fonctions individuellement pour repérer rapidement les erreurs. Python fournit un module intégré, unittest, pour créer des tests automatisé. Mais, plus simplement, envisagez tout ce qui peut mal se passer lors de l’utilisation de votre code comme nous l’avons fait pour nos premiers scripts (si l’utilisateur ne saisi rien ? Ou autre chose qu’un nombre, ou un âge impossible ou négatif ? etc.).

VIII. Conclusion

Dans cet article, nous avons étudié les bases du langage Python avec les variables, boucles, fonctions et conditions, créé notre premier script et utilisé de bibliothèques standards. Python est un langage très polyvalent et riche, idéal pour les débutants comme pour les développeurs avancés. 

À ce stade, vous avez toutes les clés pour commencer à créer vos propres projets, mais soyez conscient que la route est encore longue, car il ne s’agit que d’un article d’introduction. Nous n’avons, par exemple, pas vu la gestion des erreurs, les classes, les packages, les constantes, la gestion des fichiers, des threads, le passage de paramètre à un script, etc. 

Également, chaque module requiert un apprentissage en soi. Je pense, par exemple, à python-pptx pour la manipulation des fichiers Powerpoint, matplolib pour la génération de graphiques et histogrammes, ou encore Pandas, TensorFlow et NumPy, très utilisés dans le domaine de l’intelligence artificielle et la data science.

Il existe de nombreuses ressources gratuites en ligne pour vous aider à progresser en Python, nous avons d’ailleurs quelques articles à ce sujet (pour des niveaux de développeurs divers) que je vous encourage à consulter : 

Je vous recommande aussi ces deux sites pour apprendre à coder via des mini-jeux : 

Le meilleur apprentissage reste la pratique ! N’hésitez pas à nous indiquer dans les commentaires si cet article vous a plu et si vous en souhaitez d’autres pour continuer à progresser sur ce sujet ! 

author avatar
Mickael Dorigny Co-founder
Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

1 commentaire sur “Écrire son premier script Python : guide pour débutants

  • Excellent article. Merci pour cette découverte.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.