Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Supports de cours
  2. Python - Apprenez à développer des projets ludiques (3e édition)

Python Apprenez à développer des projets ludiques (3e édition)

Bientôt disponible !
Suivez-nous pour être informé dès la sortie

Caractéristiques

  • Reliure spirale - 17 x 21 cm (Médian)
  • ISBN : 978-2-409-04200-3
  • EAN : 9782409042003
  • Ref. ENI : RIM3PYTPR
Vous rêvez de découvrir la programmation tout en réalisant des projets ludiques, vous souhaitez connaître les astuces du langage Python devenu incontournable cette décennie, alors ce support, rédigé par un expert, vous permettra d'atteindre ces objectifs.Tout d'abord, vous êtes guidé pour choisir et mettre en place votre environnement Python sur PC et sur Mac. Après cela, l'auteur vous propose de vous enseigner de façon ludique et pédagogique ce langage accessible à tous et...
Aperçu du livre papier
  • Niveau Initié à Confirmé
  • Nombre de pages 568 pages
  • Parution avril 2024
Vous rêvez de découvrir la programmation tout en réalisant des projets ludiques, vous souhaitez connaître les astuces du langage Python devenu incontournable cette décennie, alors ce support, rédigé par un expert, vous permettra d'atteindre ces objectifs.

Tout d'abord, vous êtes guidé pour choisir et mettre en place votre environnement Python sur PC et sur Mac. Après cela, l'auteur vous propose de vous enseigner de façon ludique et pédagogique ce langage accessible à tous et très puissant grâce à une centaine d'exercices corrigés de difficulté progressive. Ainsi, quatre chapitres permettent d'assimiler les bases de la programmation : variables, types, conditions, boucles, listes et fonctions et d'anticiper les pièges à éviter. Cette nouvelle édition s’enrichit de plusieurs dizaines d'exemples pour gérer les messages d'erreur les plus courants.

Puis l'auteur vous propose de tester la facilité d'approche de Python et la créativité offerte par ses librairies en dépassant vos limites grâce à quarante projets guidés. Leur niveau de difficulté indiqué par des symboles vous permet de faire évoluer rapidement vos compétences. Cet ouvrage est idéal pour un étudiant voulant maîtriser la programmation du langage Python, tout particulièrement les étudiants de la spécialité Numérique et Sciences Informatiques des classes de lycée pour lesquels sont proposés des cours et des projets en adéquation avec le programme officiel du Ministère de l'Education Nationale.

Dans les deux derniers chapitres, vous pourrez aller plus loin dans la mise en pratique de vos apprentissages avec la création de plusieurs jeux d'arcade avec Pygame et dans la découverte d'algorithmes d'Intelligence Artificielle orientés images et jeu de stratégie. Les codes sources complets des projets sont téléchargeables sur le site www.editions-eni.fr.

Téléchargements

Avant-propos
  1. 1. Pourquoi s’intéresser à l’informatique ?
  2. 2. Pourquoi le langage Python ?
  3. 3. Mon style de pédagogie
  4. 4. À qui s’adresse le livre ?
  5. 5. Organisation du livre
  6. 6. Pour conclure
  7. 7. Téléchargement des sources des exemples
Installer l'environnement Python
  1. 1. Introduction
    1. 1.1 Que doit-on installer ?
    2. 1.2 Quid d'Anaconda ?
    3. 1.3 Pour les environnements Mac et Linux
  2. 2. Installer Python sous Windows 10/11
    1. 2.1 Diagnostic
    2. 2.2 Installation de Python
    3. 2.3 Installation des librairies
  3. 3. Installer Python sous macOS 13 (Ventura)
    1. 3.1 Diagnostic
    2. 3.2 Installation de Python
    3. 3.3 Installation des librairies
  4. 4. Installer Python sous Ubuntu 22 (Linux)
    1. 4.1 Diagnostic
    2. 4.2 Installation de Python
    3. 4.3 Installation des librairies
Les environnements de développement
  1. 1. Introduction
  2. 2. Python Tutor
    1. 2.1 Historique
    2. 2.2 Présentation
  3. 3. IDLE : un environnement simple
    1. 3.1 Lancer IDLE sous Windows
    2. 3.2 Lancer IDLE sous Mac
    3. 3.3 Premiers pas sous IDLE
  4. 4. Pyzo : un environnement épuré et complet
    1. 4.1 Installer Pyzo sous Windows
    2. 4.2 Installer Pyzo sous Mac
    3. 4.3 Installer Pyzo sous Linux-Ubuntu 22
    4. 4.4 Configurer l'interface de Pyzo
  5. 5. Visual Studio Code
    1. 5.1 Installer Visual Studio Code sous Windows
    2. 5.2 Installer Visual Studio Code sous Mac
    3. 5.3 Configurer Visual Studio Code
    4. 5.4 Configurer les outils de débogage
Structure du langage Python
  1. 1. L’interpréteur Python
    1. 1.1 Terminologie
    2. 1.2 Les éléments du langage
    3. 1.3 Exercices
    4. 1.4 Pourquoi présenter cette terminologie ?
    5. 1.5 Analyse des messages d’erreur
  2. 2. Les variables
    1. 2.1 Usage
    2. 2.2 Conseil 1 : choisir des noms explicites
    3. 2.3 Conseil 2 : créer des variables autant que nécessaire
    4. 2.4 Affectations et expressions
    5. 2.5 Exercices
  3. 3. Les types numériques
    1. 3.1 Typage automatique
    2. 3.2 Conversion entre types
    3. 3.3 Autres fonctions natives s’appliquant aux numériques
    4. 3.4 Analyse des messages d’erreur
    5. 3.5 La fonction input pour les entrées clavier
    6. 3.6 Exercices
  4. 4. Les chaînes de caractères
    1. 4.1 Opérations sur les chaînes de caractères
    2. 4.2 Sous-chaîne
    3. 4.3 Rechercher et remplacer
    4. 4.4 Affichage avec la fonction print()
    5. 4.5 Analyse des messages d’erreur
    6. 4.6 Exercices
  5. 5. Les branchements conditionnels
    1. 5.1 Écriture d’une condition
    2. 5.2 Branchement if
    3. 5.3 Branchement if/else
    4. 5.4 Les conditions avec tests multiples
    5. 5.5 Analyse des messages d’erreur
    6. 5.6 Exercices
  6. 6. La boucle for avec indice
    1. 6.1 Principe de fonctionnement
    2. 6.2 Analyse des messages d’erreur
    3. 6.3 Exercices guidés
  7. 7. Exercices d'entraînement
    1. 7.1 Afficher un mot à l'envers
    2. 7.2 Calculer la valeur du polynôme 3x² + 5x + 1
    3. 7.3 Additionner les n premiers entiers
    4. 7.4 L'infiniment petit
    5. 7.5 Compter les nombres à deux chiffres ayant le chiffre 7
    6. 7.6 Compter les consonnes dans un mot
    7. 7.7 Encoder et décrypter un nom
    8. 7.8 Afficher les balises d'une page HTML
    9. 7.9 Afficher le calendrier du mois
    10. 7.10 Statistiques avec pile ou face
    11. 7.11 Correction des exercices
  8. 8. Projets
    1. 8.1 Le jeu du pendu
    2. 8.2 Le jeu Motus
Les boucles, listes et fichiers
  1. 1. Introduction
  2. 2. L'imbrication
    1. 2.1 La notion de blocs d'imbrication
    2. 2.2 Imbriquer des conditions
    3. 2.3 Imbriquer des boucles et des conditions
  3. 3. Les listes
    1. 3.1 Créer une liste
    2. 3.2 Lire et modifier une liste
    3. 3.3 Fusionner des listes
    4. 3.4 Insérer et supprimer un élément
    5. 3.5 Extraire une sous-liste
    6. 3.6 Tester la présence et le nombre d'occurrences d'un élément
    7. 3.7 Les fonctions natives appliquées aux listes
    8. 3.8 Parcourir une liste avec une boucle for
    9. 3.9 Copier une liste
    10. 3.10 Analyser les messages d’erreur
  4. 4. La boucle while et les entrées-sorties fichier
    1. 4.1 La boucle while
    2. 4.2 Ne pas remplacer une boucle for par une boucle while
    3. 4.3 Lire et écrire dans un fichier
  5. 5. Les listes et chaînes de caractères
    1. 5.1 Conversion entre listes et chaînes
    2. 5.2 Fractionner une chaîne de caractères
  6. 6. Des astuces à connaître
    1. 6.1 Les paramètres optionnels de la fonction print
    2. 6.2 L'opérateur modulo %
    3. 6.3 L'opérateur puissance
    4. 6.4 Les opérateurs +=, -= et *=
  7. 7. Exercices d’application
    1. 7.1 Boucles for imbriquées I
    2. 7.2 Boucles for imbriquées II
    3. 7.3 Boucles for imbriquées III
    4. 7.4 Parcours de liste I
    5. 7.5 Parcours de liste II
    6. 7.6 Manipulation de liste I
    7. 7.7 Manipulation de liste II
    8. 7.8 Extraire une sous-liste
    9. 7.9 Opérations sur les listes
    10. 7.10 Boucle while
  8. 8. Exercices d’entraînement
    1. 8.1 Calculer la somme des éléments d'une liste
    2. 8.2 Répartir les nombres pairs et impairs dans deux listes
    3. 8.3 Compter les occurrences de chaque nombre dans une liste
    4. 8.4 Faire apparaître une texture de grillage
    5. 8.5 Calculer les racines d'un polynôme du second degré
    6. 8.6 Trouver tous les nombres premiers jusqu'à 100
    7. 8.7 Vérifier si une liste est triée
    8. 8.8 Décaler une liste
    9. 8.9 Construire un tableau de comparaison
    10. 8.10 Fusionner deux listes triées
    11. 8.11 Correction des exercices
  9. 9. Projets
    1. 9.1 Résoudre un cryptarithme
    2. 9.2 Calculer le nombre Pi
    3. 9.3 Créer un robot de conversation
    4. 9.4 Faire de l'ASCII art
Les fonctions
  1. 1. Introduction
  2. 2. Association entre variables
    1. 2.1 Le mécanisme des associations
    2. 2.2 Les listes de listes
    3. 2.3 Copier une liste de listes
  3. 3. Intérêt des fonctions
    1. 3.1 Rôles et définition
    2. 3.2 Les paramètres nommés
    3. 3.3 Les valeurs par défaut des paramètres
    4. 3.4 Passer et retourner un argument de type entier
    5. 3.5 Passer et retourner un argument de type liste
    6. 3.6 Analyser les messages d’erreur
  4. 4. Gestion des variables
    1. 4.1 Les variables globales
    2. 4.2 Les variables locales
    3. 4.3 Conflit entre variables locales et variables globales
    4. 4.4 Passer et retourner des tuples
  5. 5. Exercices d'application
    1. 5.1 Copies et modifications de listes
    2. 5.2 Création de liste de listes I
    3. 5.3 Création de liste de listes II
    4. 5.4 Création de liste de listes III
    5. 5.5 Paramètres par défaut
    6. 5.6 Impact sur les variables globales
    7. 5.7 Fonction
    8. 5.8 Appel d'une fonction depuis une fonction
    9. 5.9 Fonction récursive
  6. 6. Préparation aux exercices
    1. 6.1 Une fenêtre d'affichage graphique
  7. 7. Exercices d'entraînement
    1. 7.1 Calculer le minimum d'une liste
    2. 7.2 Dessiner en mode texte
    3. 7.3 Dessiner une maison sous la neige - Étape 1
    4. 7.4 Dessiner une maison sous la neige - Étape 2
    5. 7.5 Dessiner une fractale de Sierpinski - Étape 1
    6. 7.6 Dessiner une fractale de Sierpinski - Étape 2
    7. 7.7 Tester si un point appartient à un rectangle
    8. 7.8 Le jeu de la vie - Étape 1
    9. 7.9 Le jeu de la vie - Étape 2
    10. 7.10 Placement optimal d'antennes-relais - Étape 1
    11. 7.11 Placement optimal d'antennes-relais - Étape 2
    12. 7.12 Tir aux ballons - Étape 1
    13. 7.13 Tir aux ballons - Étape 2
    14. 7.14 Calculer la durée de remboursement d'un prêt
    15. 7.15 Correction des exercices
  8. 8. Projets
    1. 8.1 Le jeu du morpion - Étape 1
    2. 8.2 Le jeu du morpion - Étape 2
    3. 8.3 Le jeu du morpion - Étape 3
    4. 8.4 Créer un labyrinthe - Étape 1
    5. 8.5 Créer un labyrinthe - Étape 2
    6. 8.6 Générer une grille de loto - Étape 1
    7. 8.7 Générer une grille de loto - Étape 2
    8. 8.8 Le jeu de la bataille navale - Étape 1
    9. 8.9 Le jeu de la bataille navale - Étape 2
Conception d'un programme
  1. 1. Présentation
  2. 2. Principes de conception
    1. 2.1 Les trois grands principes : identifier, structurer, améliorer
    2. 2.2 Gérer les dépendances entre fonctions
  3. 3. Les variables
    1. 3.1 Identifier les variables
      1. 3.1.1 Règle : 1 notion = 1 variable
      2. 3.1.2 Identifier une variable par la présence de code répétitif
    2. 3.2 Structurer les variables globales
      1. 3.2.1 Conséquence de l'absence de structuration
      2. 3.2.2 La bonne attitude
    3. 3.3 Isoler les variables globales des autres variables
  4. 4. Les fonctions
    1. 4.1 Identifier une fonction
      1. 4.1.1 Prérequis
      2. 4.1.2 Analyser ou restructurer le code
      3. 4.1.3 La mauvaise approche
      4. 4.1.4 Règle : 1 fonction = 1 action/traitement/thématique
      5. 4.1.5 Identifier une fonction par la présence de code répétitif
    2. 4.2 Améliorer les fonctions
      1. 4.2.1 Premier exemple
      2. 4.2.2 Second exemple
  5. 5. Structure hiérarchique d'un programme
    1. 5.1 La problématique
    2. 5.2 Schéma d'une hiérarchie d'appels de fonctions
    3. 5.3 Identifier une hiérarchie d'appels de fonctions
      1. 5.3.1 Les mauvais critères
      2. 5.3.2 Principe 1 : les sous-fonctions traitent des sous-thématiques
      3. 5.3.3 Principe 2 : périmètres similaires pour des fonctions voisines
    4. 5.4 Entraînement
      1. 5.4.1 Exercice n°1
      2. 5.4.2 Exercice n°2
  6. 6. Cas pratique : le jeu du labyrinthe et des momies
    1. 6.1 Présentation
      1. 6.1.1 Du point de vue du débutant
      2. 6.1.2 Du point de vue du formateur/enseignant
      3. 6.1.3 Les ressources graphiques
    2. 6.2 Le scénario
      1. 6.2.1 Présentation
      2. 6.2.2 Compléments d'informations
      3. 6.2.3 Les ambiguïtés du scénario
    3. 6.3 Écriture du niveau principal
    4. 6.4 Comment représenter les données du jeu
      1. 6.4.1 Représenter le labyrinthe
      2. 6.4.2 Comment représenter les éléments du jeu
      3. 6.4.3 Les variables d'état du jeu
    5. 6.5 La gestion de la partie
    6. 6.6 Déplacement du héros
      1. 6.6.1 Déplacement sur la grille du jeu
      2. 6.6.2 Déplacement fluide à l'écran
    7. 6.7 IA des momies
      1. 6.7.1 Faire des allers-retours
      2. 6.7.2 Déplacement aléatoire - version 1
      3. 6.7.3 Déplacement aléatoire - version 2
    8. 6.8 Zone d'attaque des momies
    9. 6.9 Bilan du projet
    10. 6.10 Bilan pour Tom
    11. 6.11 Conclusion
Le programme du lycée
  1. 1. Le programme officiel de spécialité NSI
  2. 2. L'interaction homme-machine
    1. 2.1 Le nerf de la guerre : les IHM
    2. 2.2 Créer la fenêtre principale
    3. 2.3 La boucle d'évènements mainloop()
    4. 2.4 Créer un bouton
    5. 2.5 Lier des composants à des évènements
    6. 2.6 Créer un label
    7. 2.7 Créer une zone de texte
    8. 2.8 Créer une case à cocher
    9. 2.9 Créer des boutons radio
    10. 2.10 Créer un sélecteur de valeurs
    11. 2.11 Créer une liste de choix
    12. 2.12 Créer une boîte de sélection
    13. 2.13 Créer une zone de dessin
    14. 2.14 Tracés dynamiques dans un canvas
    15. 2.15 Positionner des composants
    16. 2.16 Grouper des composants
    17. 2.17 Panneaux redimensionnables
    18. 2.18 Consulter la documentation
    19. 2.19 Tirage de dés
    20. 2.20 Application de dessin
    21. 2.21 Gestionnaire de listes
  3. 3. Les tracés scientifiques
    1. 3.1 Tracer des fonctions
    2. 3.2 Tracer des ensembles de points
    3. 3.3 Tracer des lignes polygonales
    4. 3.4 Tracer des plages de niveaux d'intensité
  4. 4. La complexité des algorithmes
    1. 4.1 La notion de complexité
    2. 4.2 Les classes de complexité
    3. 4.3 Les règles de calcul
    4. 4.4 Calcul du minimum
    5. 4.5 Comptage des doublons
    6. 4.6 Ferme de rendu
    7. 4.7 Recherche dichotomique
    8. 4.8 Réduction de la complexité d'un algorithme
    9. 4.9 Fusion de deux listes triées
  5. 5. Les méthodes de tri
    1. 5.1 Le tri par sélection
    2. 5.2 Le tri par insertion
    3. 5.3 La preuve par invariant de boucle
    4. 5.4 Le tri par insertion dans une liste triée
    5. 5.5 Le tri par fusion
    6. 5.6 Le tri à bulles
    7. 5.7 Le tri rapide
  6. 6. Projets
    1. 6.1 Apprentissage et k plus proches voisins
    2. 6.2 Algorithme glouton pour le problème du sac à dos
    3. 6.3 Algorithme glouton et simplification géométrique
Créer des jeux vidéo avec Pygame
  1. 1. Introduction
    1. 1.1 Contexte
    2. 1.2 La structure d'un jeu interactif
    3. 1.3 Séparation de la logique et de l'affichage
  2. 2. Le projet balle rebondissante
    1. 2.1 Présentation du code
    2. 2.2 Modification du jeu actuel
    3. 2.3 Conseils pour compléter le code
  3. 3. Le projet Pong
    1. 3.1 Historique
    2. 3.2 Premier lancement
    3. 3.3 Présentation du code
    4. 3.4 Amélioration du jeu existant
    5. 3.5 Conseils pour compléter le code
  4. 4. Le projet Snake
    1. 4.1 Historique
    2. 4.2 Premier lancement
    3. 4.3 Présentation du code
    4. 4.4 Contrôle du serpent
    5. 4.5 Gestion des collisions
    6. 4.6 Conseils pour compléter le code
    7. 4.7 Rendu final
  5. 5. La documentation en ligne de Pygame
    1. 5.1 La liste des termes techniques
    2. 5.2 L'accès à la documentation en ligne
  6. 6. Le projet Gauntlet
    1. 6.1 Historique
    2. 6.2 Gestion du labyrinthe
    3. 6.3 Gestion du personnage à l'écran
    4. 6.4 Conseils pour compléter le code
  7. 7. Le projet 1943
    1. 7.1 Historique
    2. 7.2 Premier lancement
    3. 7.3 Gestion de la mer
    4. 7.4 Gestion des tirs depuis un navire
    5. 7.5 Gestion des tirs depuis l’avion
    6. 7.6 Gestion des collisions
    7. 7.7 Gestion de la flotte de navires
    8. 7.8 Rendu final
  8. 8. Le projet Illumination
    1. 8.1 Contexte
    2. 8.2 Rappels mathématiques
    3. 8.3 Conseils pour compléter le code
  9. 9. Le projet Tetris
    1. 9.1 Historique
    2. 9.2 Premier lancement
    3. 9.3 Présentation du code
    4. 9.4 Conseils pour compléter le code
    5. 9.5 Rendu final
Python et l'intelligence artificielle
  1. 1. Présentation
    1. 1.1 Historique
    2. 1.2 Principe de fonctionnement d’un neurone
    3. 1.3 Neurone et apprentissage
    4. 1.4 Le surapprentissage
    5. 1.5 Les réseaux de neurones multicouches
  2. 2. Le problème de la classification d'images
    1. 2.1 Présentation
    2. 2.2 Image et données
    3. 2.3 Les banques d'images
    4. 2.4 La fonction d'erreur
    5. 2.5 Installation de l'environnement Keras
    6. 2.6 Utilisation de MNIST
    7. 2.7 Premier apprentissage
    8. 2.8 Amélioration de l'efficacité
  3. 3. L'intelligence artificielle pour les jeux
    1. 3.1 Les fonctions disponibles
    2. 3.2 L'idée générale
    3. 3.3 Mise en place
    4. 3.4 Derniers conseils
    5. 3.5 Comportement irrationnel de l’IA
    6.  
    7.  
    8.  
    9.  
    10.  
    11. Index
Auteur : Lilian BUZER

Lilian BUZER

Professeur et docteur-ingénieur, Lilian BUZER enseigne la programmation et l’algorithmique à l’ESIEE-Paris en cycle préparatoire et en cycle ingénieur depuis plus de 20 ans. Animateur de plus de 150 projets d’élèves autour du jeu, du graphisme, de l’algorithmique et de l’Intelligence Artificielle, il introduit très tôt la pédagogie par projet dans ses enseignements et fait partager sa passion au travers de sa chaîne Youtube Codin’Fun.
En savoir plus

Découvrir tous ses livres

  • Python Apprenez à développer des projets ludiques (2e édition) - Version en ligne

Nos nouveautés

voir plus