9 idées de projets en Python pour débutants

Article publié le mardi 29 décembre 2020 et mis à jour le mercredi 24 janvier 2024.

projets débutants python

Vous cherchez un premier projet Python ? Ou comment coder des mini projets qui vous permettent de vous améliorer rapidement ? Qu’est-ce qu’un débutant peut faire en Python pour évoluer ?

Développer des projets en Python est le meilleur moyen de vous améliorer en code en général, surtout si vous êtes débutant.

D’ailleurs si vous voulez vous améliorer en Python, pensez à consulter les meilleurs outils pour apprendre Python en 2024.

Après avoir développé plusieurs des projets Python dans cette liste, vous serez capables :

  • De montrer des projets dans votre portfolio
  • De créer un jeu simple avec la libraire PyGame
  • De construire des interfaces utilisateurs en Python

Découvrons quelques exemples de projets et exercices destinés aux débutants en Python.

# Projet Difficulté
1 Le juste prix ★☆☆☆☆
2 Pierre Papier Ciseaux ★★☆☆☆
3 Générateur Fibonacci ★★☆☆☆
4 Recherche dichotomique ★★★☆☆
5 Le jeu du Morpion ★★★☆☆
6 Le jeu du pendu ★★★☆☆
7 Bot Python ★★★★☆
8 Visualisateur de data ★★★★☆
9 Créateur d’images ★★★★☆

1. Le juste prix

Le juste prix projet python débutant

Ce premier projet est un jeu amusant pour les débutants connu de tous. Le programme génère un prix rond aléatoire. Le but pour l’utilisateur est de deviner le prix. Chaque fois que l’utilisateur se trompe, l’ordinateur lui dit si c’est plus ou moins que le prix qu’il a donné. À chaque aide de l’ordinateur, le score final atteignable par le joueur baisse.

Le but du juste prix est de deviner un nombre entier choisi aléatoirement par Python. Écrivez un script qui attribue un nombre à une variable. Dans une boucle, demandez un input à l’utilisateur et informez le joueur si le nombre entré est égale, plus grand ou plus petit que le juste prix.

En réalisant ce petit script, vous apprendrez à :

  • saisir des entrées clavier par un utilisateur
  • créer des fonctions pour valider que le nombre entré est bien un nombre entier
  • comparer une variable de référence (le prix) avec une autre variable
  • calculer la différence entre deux nombre
import random

prix = random.randint(1, 10)

score = 100

tentatives = 0

print("Devinez le juste prix ! Le prix est un nombre compris entre 1 et 10 inclus.")

while True:
    nombre = int(input())
    tentatives += 1
    if nombre < prix:
        print("Le just prix est plus haut")
    if nombre > prix:
        print("Le juste prix est plus bas")
    if nombre == prix:
        print("Félicitations, vous avez trouvé le juste prix {} en {} essais, votre score est {} !".format(prix, tentatives, int(score / tentatives)))
        break

print("Partie terminée")

💡 Vous voulez en apprendre plus sur la fonction print en Python ? Alors mon article complet sur la fonction print vous intéressera sûrement !

2. Pierre Papier Ciseaux

Le programme demande à l’utilisateur d’effectuer le premier coup avant d’effectuer un coup. Une fois le coup validé, l’entrée est évaluée, l’entrée saisie pouvant être une chaîne de caractères, une lettre ou un nombre. Après évaluation de la chaîne de caractères, la fonction de résultat détermine le gagnant et la fonction de comptabilisation des points actualise le score total.

Pour créer le jeu pierre-papier-ciseaux ou chifoumi, implémentez la logique de base (pierre bat ciseaux, papier bat pierre, ciseaux bat papier) puis demandez un input clavier. L’ordinateur choisit un coup au hasard avec une fonction du package random, pour finir affichez qui a gagné la partie.

Créer un pierre-papier-ciseaux est un bon exercice pour vous entraîner en Python et réaliser vos premiers projets.

En codant un pierre-papier-ciseaux, vous apprendrez à créer :

  • une fonction qui génère de l’aléatoire : pierre, papier ou ciseaux
  • une fonction pour vérifier et valider le coup qui vient d’être joué
  • une fonction de résultat pour déclarer le vainqueur du tour
  • un compteur de points pour suivre le score total
import random

manches = int(input("Combien de manches voulez-vous jouer ? "))

score_joueur = 0
score_ordi = 0

options = ["pierre", "papier", "ciseaux"]

while score_joueur < manches and score_ordi < manches:
  choix_joueur = input("Que jouez vous ? Tapez 'pierre', 'papier' ou 'ciseaux' ")

  while choix_joueur not in options:
    input("Choix invalide ! Choisissez pierre, papier ou ciseaux (sans les guillemets)")

  choix_ordi = random.choice(options)

  if choix_joueur == choix_ordi:
    print("Égalité. Relancez le script pour rejouer")
  elif choix_joueur == "pierre" and choix_ordi == "ciseaux" \
  or choix_joueur == "papier" and choix_ordi == "pierre" \
  or choix_joueur == "ciseaux" and choix_ordi == "papier":
    print("Vous remportez la manche,", choix_joueur, "bat" , choix_ordi)
    score_joueur += 1
  else:
    print("L'ordinateur gagne la manche," , choix_ordi, "bat" , choix_joueur)
    score_ordi += 1

if score_joueur == manche:
  print("Vous avez gagné la partie !")
else:
  print("L'ordinateur gagne :(")

3. Générateur des nombres de la suite de Fibonacci

Suite Fibonacci Python

La série mathématique connue sous le nom de suite de Fibonacci a été l’une des questions informatiques les plus populaires. Essentiellement, vous commencez avec deux nombres, de préférence 0 et 1, et vous les ajoutez pour créer votre troisième nombre de Fibonacci. Ensuite, il suffit d’additionner la somme et l’avant-dernier terme de Fibonacci pour générer le suivant.

Ce qui donne :

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987...

Pour réaliser la suite de Fibonacci, demandez la position du nombre à l’utilisateur puis générez la suite jusqu’à ce nombre. Une fois généré, vous pouvez afficher le nombre correspondant à l’utilisateur. Vous pouvez aller plus loin et montrer à l’utilisateur la série entière jusqu’à ce point.

C’est l’un des meilleurs projets Python pour s’initier au concept de la fonction récursive.

Voici l’exemple d’une implémentation basique d’un générateur de nombres de la suite de Fibonacci’ :

nombres = int(input("Entrez la quantité de nombres à afficher : "))

a = 0
b = 1
total = 0

print("Les {0} premiers nombres de la suite de Fibonacci sont :".format(nombres), end = " ")
for _ in range(nombres):
  print(total, end = " ")
  a = b
  b = total
  total = a + b

Ou de manière récursive :

nombres = int(input("Entrez la quantité de nombres à afficher : "))

def fibonacci_recursive(n):
   if n <= 1:
       return n
   else:
       return fibonacci_recursive(n - 2) + fibonacci_recursive(n - 1)

print("Les {0} premiers nombres de la suite de Fibonacci sont :".format(nombres), end = " ")

for i in range(nombres):
    print(fibonacci_recursive(i), end = " ")

4. Algorithme de recherche dichotomique

Pour vous introduire à la complexité algorithmique, vous pouvez créer un algorithme simple de recherche dichotomique.

Vous utiliserez un tableau trié et diviserez le tableau à chaque itération. Si le nombre désiré est dans la première partie, vous continuez avec la première moitié du tableau et rejetez la seconde. Ensuite divisez la première moitié en 2 et répétez l’operation jusqu’à trouver le nombre voulu.

def recherche_dichotomique(x, tableau):
	debut = 0
	fin = len(tableau) - 1
	mil = 0

	while debut <= fin:

		mil = (fin + debut) // 2

		# On ignore la première partie du tableau
        # Si x est plus grand que l'élément au milieu du tableau
		if tableau[mil] < x:
			debut = mil + 1

		# On ignore la seconde partie du tableau
        # Si x est plus petit que l'élément au milieu du tableau
		elif tableau[mil] > x:
			fin = mil - 1

		# Valeur x trouvée dans le tableau à la position mil
		else:
			return mil

	# Si on est ici, c'est que x ne se trouve pas dans le tableau
	return -1


tableau = [ 1, 1, 2, 3, 5, 8, 13, 21, 34 ]
x = 13

result = recherche_dichotomique(x, tableau)

if result != -1:
	print("x est présent à la position ", str(result))
else:
	print("x ne se trouve pas dans le tableau")

5. Le jeu du Morpion

Jeu Morpion Python

Le Morpion, aussi appelé “tic-tac-toe” ou “oxo” en Belgique, est un jeu très courant et facile à jouer. Le principe du jeu est simple. C’est un jeu au tour par tour, où le but est d’aligner un trio de cercles ou de croix en diagonale, horizontalement ou verticalement sur une grille de 3×3 carrés pour obtenir la victoire.

Le défi de la création de ce jeu consiste principalement à se familiariser avec l’indexation des tableaux en 2D et à comprendre comment vérifier les alignements en diagonale. Une fois ces problèmes résolus, le codage devrait être simplifié.

Pour aller plus loin, vous pouvez aussi vous amusez à créer une interface graphique avec PyGame ou une autre bibliothèque graphique Python.

Voici l’exemple d’une implémentation basique du jeu de morpion :

plateau = [" " for _ in range(9)]  # crée un tableau de 9 caractères espaces " "


def afficherPlateau(p, gagnant=None):
    print(" " + p[0] + " | " + p[1] + " | " + p[2] + " ")
    print("---+---+---")
    print(" " + p[3] + " | " + p[4] + " | " + p[5] + " ")
    print("---+---+---")
    print(" " + p[6] + " | " + p[7] + " | " + p[8] + " ")
    if gagnant:
        print("""* Partie terminée : le joueur {0} a gagné. *""".format(gagnant))


def morpion():
    joueur = "X"
    tour = 0

    while True:
        afficherPlateau(plateau)
        print("> Tour du joueur " + joueur + ". Entrez un nombre de 1 à 9.")

        move = int(input()) - 1  # notre tableau est de 0 à 8, donc on retire 1

        if plateau[move] == " ":
            plateau[move] = joueur
            tour += 1
        else:
            print("! Case déjà occupée, choisissez-en une autre.")
            continue  # on passe au prochain passage de boucle sans exécuter le code ci-dessous

        if plateau[0] == plateau[1] == plateau[2] != " " \
        or plateau[3] == plateau[4] == plateau[5] != " " \
        or plateau[6] == plateau[7] == plateau[8] != " " \
        or plateau[0] == plateau[3] == plateau[6] != " " \
        or plateau[1] == plateau[4] == plateau[7] != " " \
        or plateau[2] == plateau[5] == plateau[8] != " " \
        or plateau[0] == plateau[4] == plateau[8] != " " \
        or plateau[2] == plateau[4] == plateau[6] != " ":
            afficherPlateau(plateau, joueur)
            break

        if tour == 9:
            print("Égalité")
            break

        joueur = "O" if joueur == "X" else "X"  # on change de joueur


if __name__ == "__main__":
    morpion()

6. Le jeu du pendu

Dans les idées de projets Python d’entrée de gamme, le Pendu est l’un des jeux les plus populaires. Un mot est choisi soit par le joueur adverse, soit par le programme. Et le joueur dispose de tout l’alphabet pour deviner les lettres.

Le but pour le joueur est de devenir le mot en choisissant les lettres bonnes lettre. Si la lettre est correcte, le mot est complété. Si la lettre choisie est incorrecte, vous perdez une vie et le pendu apparaît davantage.

La partie se termine soit par une victoire si le mot entier est trouvé, soit par une défaite sir le bonhomme du pendu apparaît en intégralité (vous n’avez plus de vie). Traditionnellement, six erreurs sont autorisées avant que le joueur ne perde le jeu, mais ce nombre peut être modifié en fonction de la manière dont vous souhaitez créer votre itération du jeu.

7. Développer un Bot en Python

Pour apprendre Python en réalisant des projets simples, vous pouvez aussi vous intéresser au scripting et à l’automatisation avec des bots. Vous pouvez facilement faire un bot qui exécute des tâches très simples en quelques dizaines de lignes de code. Par exemple, j’ai fait un Bot Discord en Python avec la librairie discord.py sur lequel vous pouvez vous baser pour construire un bot Discord en Python.

8. Visualiser de la data avec Python

Python excelle dans le monde de la data science, il sera dommage de ne pas explorer cette partie qu’offre ce langage de programmation. Je vous propose donc de visualiser de la data avec la librairie matplotlib.


# On importe le module pour visualiser la data
from matplotlib import pyplot as plt

# Les valeurs pour l'axe X
x = [1, 2, 3, 4]

# Les valeurs pour l'axe Y
y = [2, 4, 8, 16]

# Fonction pour créer le graph
plt.plot(x, y)

# Function pour montrer le graph
plt.show()

Visualiser de la data avec Python

💡 Pour cet exemple, j’utilise jupyter (anciennement iPython) qui permet d’écrire du Python de manière interactive dans votre navigateur. Jupyter est totalement gratuit et permet d’apprendre Python en ayant des résultats visuels directement, je recommande ce package à tous les débutants. Vous pouvez tester Jupyter gratuitement en suivant ce notebook.

Amusez-vous à complexifier l’affichage de ce plot, importez des données, changez de type de chart (vous trouverez des exemples sur le site de matplotlib) et partagez vos créations sur Twitter !

9. Générer des images avec Python et Pillow

Vous voulez automatiser la création de contenu pour votre Instagram, Pinterest, votre site ou projet perso ? Alors Pillow vous fera gagner un temps fou.

Comme dernier projet de cette liste d’idées de projets en Python pour débutants, je vous propose d’explorer le package Pillow qui vous permet de créer des images automatiquement. Avec Pillow ou Python Imaging Library (PIL) vous pourrez en effet définir une taille d’image puis y placer des couleurs, du texte et d’autres images.

Par exemple, pour apprendre une langue étrangère, vous pouvez créer une liste avec le mot en français, le mot dans la langue que vous voulez apprendre et l’image associée au mot. Ensuite, créez votre image avec Pillow, ajoutez ces 3 éléments et voilà, vous avez des flashcards pour apprendre plus de vocabulaire dans une nouvelle langue !

Vous voulez générer des images avec l’intelligence artificielle ? Découvrez mon article sur les meilleurs générateurs d’images par IA. Il y a même des solutions pour automatiser la création d’images en Python.

Plus d’idées de projets en Python

J’espère vous avoir inspiré à créer un ou plusieurs projets en Python.

Vous devriez maintenant être capable de réaliser des petits jeux avec ou sans interfaces graphiques, d’utiliser des bibliothèques Python et de comprendre les structures de contrôle ainsi que la complexité algorithmique.

Comme vous l’avez vu, Python est très versatile et permet de toucher à un peu tous les domaines du développement informatique.

Pourquoi choisir Python pour son idée de projet

Si vous cherchez plus d’idées de projets pour débutants à réaliser en Python, je vous conseille

La formation 101 Exercices et Algorithmes Python Corrigés.

Ou le livre en anglais Learn Python 3 the Hard Way qui vous proposera une cinquantaine d’exercices !

Les lecteurs de cet article ont aussi aimé :

11 idées de projets pour progresser en JavaScript

Top 10 des meilleurs livres pour apprendre Python en 2024

Top 7 des meilleurs livres Django en 2024

8 idées de projets pour progresser en PHP

5 idées de projets pour progresser en Java

Comment Coder

Je m'appelle Thomas. J'ai commencé à coder dans mon enfance. Depuis ma sortie de la première promo de l'École 42, j'ai développé des centaines d'applications et sites web. Sur ce blog, je vous donne les meilleurs conseils et astuces pour apprendre comment apprendre à coder efficacement.