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
Les 22 & 23 novembre : Accès 100% GRATUIT à  
la Bibliothèque Numérique ENI. Je m'inscris !
  1. Supports de cours
  2. Python - Apprenez à développer des projets ludiques (2e édition) - Version en ligne

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

Informations

  • Consultable en ligne immédiatement après validation du paiement et pour une durée de 10 ans.
  • Version HTML
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • HTML
  • ISBN : 978-2-409-03250-9
  • EAN : 9782409032509
  • Ref. ENI : LNRIM2PYTPR
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...
  • Niveau Initié à Confirmé
  • Parution novembre 2021
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 d’un chapitre qui présente les meilleures techniques pour concevoir tous vos programmes, même les plus complexes.

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. Un chapitre dédié à la spécialité Numérique et Sciences Informatiques des classes de lycée propose des cours complets 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 OS Mac et Linux
  2. 2. Installer Python sous Windows 10
    1. 2.1 Diagnostic
    2. 2.2 Installation
  3. 3. Installer Python sous OS Mac
    1. 3.1 Diagnostic
    2. 3.2 Installation
  4. 4. Installer les librairies annexes
    1. 4.1 Installation sous Windows 10
    2. 4.2 Installation sous OS Mac
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 10
    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 10
    2. 4.2 Installer Pyzo sous Mac
    3. 4.3 Configurer l'interface de Pyzo
  5. 5. Visual Studio Code
    1. 5.1 Installer Visual Studio Code sous Windows 10
    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
  6. 6. D'autres environnements de développement ?
Structure du langage Python
  1. 1. Introduction
  2. 2. Les variables
    1. 2.1 Usage
    2. 2.2 Nommage
    3. 2.3 Créer des variables !
    4. 2.4 Affectation
  3. 3. Les types des variables
    1. 3.1 Quand utiliser un type entier ?
    2. 3.2 Les opérations entre types différents
    3. 3.3 Convertir un type en un autre
  4. 4. Les opérations sur les chaînes de caractères
    1. 4.1 Le standard Unicode
    2. 4.2 Concaténer deux chaînes
    3. 4.3 Connaître la longueur d'une chaîne
    4. 4.4 Accéder à un caractère et à une sous-chaîne
    5. 4.5 Transformer une chaîne en majuscules/mininuscules
    6. 4.6 Rechercher et remplacer une chaîne
    7. 4.7 Afficher avec la fonction print()
    8. 4.8 Formater la sortie
  5. 5. Les conditions
    1. 5.1 Les conditions simples
    2. 5.2 Les conditions avec tests multiples
    3. 5.3 L'inversion
    4. 5.4 La syntaxe des tests
  6. 6. Les fonctions natives
    1. 6.1 Les fonctions natives de conversion
    2. 6.2 Les fonctions natives mathématiques
    3. 6.3 La fonction native input pour les entrées-clavier
    4. 6.4 Les fonctions natives avancées
  7. 7. La boucle for avec indice
  8. 8. La structure lexicale d'un langage
  9. 9. Les messages d'erreur
    1. 9.1 SyntaxError : invalid syntax
    2. 9.2 Variable inconnue
    3. 9.3 Les erreurs d'indentation
    4. 9.4 Les erreurs de parenthésage
    5. 9.5 L'oubli du range
    6. 9.6 Les erreurs non signalées
  10. 10. Exercices d'application
    1. 10.1 Série de calculs
    2. 10.2 Série de calculs imbriqués
    3. 10.3 Série de calculs imbriqués avec deux variables
    4. 10.4 Expressions conditionnelles
    5. 10.5 Types et conversions de type
    6. 10.6 Calculs avec les fonctions mathématiques natives
    7. 10.7 Chaînes de caractères
    8. 10.8 Boucle for
    9. 10.9 Boucle for combinée avec une condition
  11. 11. Exercices d'entraînement
    1. 11.1 Afficher un mot à l'envers
    2. 11.2 Calculer la valeur du polynôme 3x² + 5x + 1
    3. 11.3 Sommer les n premiers entiers
    4. 11.4 L'infiniment petit
    5. 11.5 Compter les nombres à deux chiffres ayant le chiffre 7
    6. 11.6 Compter les consonnes dans un mot
    7. 11.7 Encoder et décrypter un nom
    8. 11.8 Afficher les balises d'une page HTML
    9. 11.9 Afficher le calendrier du mois
    10. 11.10 Statistiques avec pile ou face
    11. 11.11 Corrections des exercices
  12. 12. Projets
    1. 12.1 Le jeu du pendu
    2. 12.2 Le jeu Motus
Les boucles, listes et entrées-sorties
  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
  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. Les messages d'erreur
    1. 6.1 Les erreurs de crochets
    2. 6.2 Les erreurs d'indice
    3. 6.3 On mélange les listes et les nombres
  7. 7. Les trucs en plus
    1. 7.1 Les paramètres optionnels de la fonction print
    2. 7.2 L'opérateur modulo %
    3. 7.3 L'opérateur puissance
    4. 7.4 Les opérateurs +=, -= et *=
  8. 8. Exercices d’application
    1. 8.1 Boucles for imbriquées I
    2. 8.2 Boucles for imbriquées II
    3. 8.3 Boucles for imbriquées III
    4. 8.4 Parcours de liste I
    5. 8.5 Parcours de liste II
    6. 8.6 Manipulation de liste I
    7. 8.7 Manipulation de liste II
    8. 8.8 Extraire une sous-liste
    9. 8.9 Opérations sur les listes
    10. 8.10 Boucle while
  9. 9. Exercices d’entraînement
    1. 9.1 Calculer la somme des éléments d'une liste
    2. 9.2 Répartir les nombres pairs et impairs dans deux listes
    3. 9.3 Compter les occurrences de chaque nombre dans une liste
    4. 9.4 Faire apparaître une texture de grillage
    5. 9.5 Calculer les racines d'un polynôme du second degré
    6. 9.6 Trouver tous les nombres premiers jusqu'à 100
    7. 9.7 Vérifier si une liste est triée
    8. 9.8 Décaler une liste
    9. 9.9 Construire un tableau de comparaison
    10. 9.10 Fusionner deux listes triées
    11. 9.11 Corrections des exercices
  10. 10. Projets
    1. 10.1 Résoudre un cryptarithme
    2. 10.2 Calculer le nombre Pi
    3. 10.3 Créer un robot de conversation
    4. 10.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
  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 Corrections
  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 Tri par insertion
    3. 5.3 La preuve par invariant de boucle
    4. 5.4 Le tri par insertion
    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. 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
  4. 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 (3e édition)

Nos nouveautés

voir plus