• Aide
  • Eurêkoi Eurêkoi

Livre

Python : apprentissage actif : pour l'étudiant et le futur enseignant

Résumé

L'essentiel du langage Python avec un entraînement au codage à travers 130 exercices et problèmes. En partant de la base algorithmique classique, l'auteur aborde des secteurs méconnus comme le graphisme, l'analyse lexicale et syntaxique, les moteurs physiques, l'intelligence artificielle et la musique électronique. ©Electre 2020


  • Éditeur(s)
  • Date
    • 2020
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (XII-323 p.) : ill. ; 24 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-340-03664-2
  • Indice
  • Quatrième de couverture
    • Python - Apprentissage actif pour l'étudiant et le futur enseignant

      Le langage Python permet, dans l'industrie, de piloter des systèmes complexes, mais il se répand aussi dans le monde de l'éducation, du lycée à l'université, par sa simplicité et ses bibliothèques logicielles, notamment mathématiques. Ce livre présente l'essentiel du langage puis, à travers 130 exercices et problèmes, propose un entraînement au codage.

      Partant de la base algorithmique classique, il aborde ensuite des secteurs moins enseignés comme le graphisme, l'analyse lexicale et syntaxique, les moteurs physiques, l'intelligence artificielle (génétique, neurones) et la musique électronique.

      Les thèmes abordés ont été sélectionnés avec la conviction qu'une première approche assez simple, un « pied à l'étrier », permettra un approfondissement personnel. Les enseignants y trouveront matière à problèmes et projets. Tous les exercices sont corrigés en ligne.

      La version de Python 3 utilisée est celle d'Anaconda, destinée aux scientifiques. Les éditeurs de texte brièvement présentés sont IDLE, Spyder, ainsi que les « notebooks » de Jupyter, tous présents dans Anaconda, qui contient aussi la plupart des logiciels scientifiques couramment utilisés (NumPy, SAGE, etc.). Il va de soi que le lecteur pourra coder néanmoins avec tout autre environnement familier de programmation. Le système Processing est aussi utilisé en mode Python, en ayant accès à des bibliothèques écrites en Java, langage dont la comparaison avec Python fait l'objet d'un chapitre particulier. À tous les futurs codeurs, « Hands on ! » comme disent les Anglo-Saxons. Mettez les mains sur le clavier...


  • Tables des matières
      • Python

      • Apprentissage actif pour l'étudiant et le futur enseignant

      • Jean-Paul Roy

      • Ellipses

      • I L'essentiel du langage1
      • 1 Environnement de programmation 3
      • 1.1 Installation de la distribution Anaconda3
      • 1.2 L'éditeur IDLE et sa console4
      • 1.3 Le gestionnaire de paquets conda5
      • 1.4 L'interface graphique : Anaconda Navigator9
      • 1.5 Un autre IDE pour Anaconda : Spyder10
      • 1.5.1 L'éditeur de Spyder11
      • 1.5.2 La console de Spyder11
      • 1.6 Le projet Jupyter12
      • 1.6.1 Les notebooks de Jupyter13
      • 1.6.2 Jupyter Lab15
      • 1.7 Conclusion15
      • 2 Variables, nombres et fonctions 17
      • 2.1 Qu'est-ce qu'une variable ?17
      • 2.2 Qu'est-ce qu'un type ?18
      • 2.3 Le type int des nombres entiers20
      • 2.4 Les nombres flottants20
      • 2.5 Les nombres complexes22
      • 2.6 Qu'est-ce qu'un module en Python ?22
      • 2.7 Donc pas de nombres rationnels en Python ?24
      • 2.8 L'égalité est-elle fiable sur les nombres flottants ?24
      • 2.9 L'infini existe-t-il en programmation ?25
      • 2.10 Qu'est-ce que la priorité d'un opérateur ?25
      • 2.11 Comment construire couples, triplets, etc. ?26
      • 2.12 Quelle différence entre expression et instruction ?27
      • 2.13 Les expressions booléennes28
      • 2.14 Les instructions conditionnelles30
      • 2.15 Comment tirer un nombre au hasard ?32
      • 2.16 Fonction, paramètres et variables locales32
      • 2.17 Qu'est-ce qu'une variable globale ?34
      • 2.18 Les différentes formes de paramètres36
      • 2.19 Les arguments optionnels de la fonction print37
      • 2.20 Les lambda-expressions38
      • 2.21 Comment documenter une fonction ?40
      • 2.22 Quelle est la différence entre fonction et méthode ?41
      • 2.23 Qu'est-ce qu'une fonction récursive ?41
      • 2.23.1 Suivre une fonction à la trace43
      • 2.23.2 Le rôle de la pile de récursion44
      • 2.24 La boucle while47
      • 2.25 La boucle for49
      • 2.26 Comment interrompre brutalement une boucle ?51
      • 2.27 Le calcul d'une somme en compréhension51
      • 2.28 La complexité d'un calcul52
      • 3 Traitement du texte : les bases 55
      • 3.1 Les caractères Unicode55
      • 3.2 Les textes sont des chaînes de caractères56
      • 3.3 Comment programmer avec des chaînes ?59
      • 3.4 Les chaînes formatées60
      • 3.5 Une chaîne peut-elle contenir du code Python ?61
      • 4 Dessiner 65
      • 4.1 Le graphisme de la tortue65
      • 4.1.1 La fenêtre graphique65
      • 4.1.2 Le graphisme cartésien66
      • 4.1.3 Le graphisme polaire69
      • 4.1.4 Une courbe fractale70
      • 4.2 Le système Processing.py72
      • 4.3 Stéganographie avec le module Pillow75
      • 5 Les collections d'objets 79
      • 5.1 Collections et séquences79
      • 5.2 Les listes sont des séquences mutables79
      • 5.3 Les constructions fonctionnelles de listes81
      • 5.4 Déstructuration d'un objet itérable83
      • 5.5 Suppression d'objets avec del84
      • 5.6 Listes et partage de mémoire84
      • 5.7 Les ensembles88
      • 5.8 Les dictionnaires90
      • 5.9 Gestion des erreurs : les exceptions93
      • 6 Les entrées-sorties 97
      • 6.1 Le système de fichiers et le module os97
      • 6.2 Ecriture dans un fichier texte sur disque (en sortie)99
      • 6.3 Lecture d'un fichier texte sur disque (en entrée)100
      • 6.3.1 La construction with102
      • 6.3.2 L'utilisation de split103
      • 6.4 Des fichiers en mémoire centrale103
      • 6.5 Exécution d'un script Python au terminal104
      • 7 Les objets et les classes 107
      • 7.1 Définition d'une nouvelle classe d'objets107
      • 7.2 Les attributs de classe112
      • 7.3 Utilisation des méthodes spéciales114
      • 7.4 Boucle for et méthodes spéciales : les itérateurs114
      • 7.5 Les générateurs116
      • 7.6 Les objets soft117
      • 7.7 La hiérarchie des classes118
      • 7.8 Les classes abstraites121
      • 7.9 Qu'est-ce qu'un décorateur ?122
      • 8 Traitement avancé du texte 125
      • 8.1 Expressions régulières : le module re125
      • 8.1.1 Présence d'une sous-chaîne dans une chaîne126
      • 8.1.2 Les méta-caractères d'un motif127
      • 8.1.3 Remplacements dans une chaîne130
      • 8.2 Analyse lexicale avec l'outil lex131
      • 8.2.1 Installation avec pip131
      • 8.2.2 Programmation d'un analyseur lexical132
      • 8.3 Analyse syntaxique avec l'outil yacc134
      • 8.4 Recherche de texte dans une page Web : requests138
      • 9 Les interfaces graphiques (GUI) 139
      • 9.1 Le module tkinter139
      • 9.1.1 La programmation dirigée par les évènements139
      • 9.1.2 La fenêtre du programme140
      • 9.1.3 Dessiner avec les classes Canvas et Button141
      • 9.1.4 L'interface graphique comme sous-classe de Tk144
      • 9.1.5 Les options du gestionnaire pack145
      • 9.1.6 Gestion des évènements souris et clavier145
      • 9.1.7 Variables de contrôle148
      • 9.1.8 Compléments sur les évènements souris150
      • 9.1.9 Animation en style MVC avec tkinter152
      • 9.1.10 La tortue dans une interface graphique155
      • 9.2 Programmer une animation avec pyglet156
      • 10 De Java vers Python 159
      • 10.1 Le typage : fort ou dynamique ?159
      • 10.2 Les boucles161
      • 10.3 Les listes162
      • 10.4 Les classes d'objets163
      • 11 Exercices 167
      • Nombres, fonctions, boucles
      • 11.1 Valeur d'une expression167
      • 11.2 Quotient et reste. Écriture binaire d'un entier167
      • 11.3 Écriture binaire d'un nombre flottant167
      • 11.4 Avec ou sans résultat ?168
      • 11.5 Heures - minutes - secondes169
      • 11.6 Décomposition en sous-fonctions169
      • 11.7 Une fonction, comment ça marche ?169
      • 11.8 Addition relativiste des vitesses170
      • 11.9 La formule de Stirling170
      • 11.10 Payez vos impôts !170
      • 11.11 Une variable locale dans une lambda ?171
      • 11.12 Tirage au hasard de nombres entiers171
      • 11.13 Nombres fractionnaires (rationnels)172
      • 11.14 Solutions complexes d'une équation de degré 2172
      • 11.15 Nombres complexes et géométrie plane172
      • 11.16 La division euclidienne dans les entiers173
      • 11.17 Travail arithmétique sur les chiffres d'un entier173
      • 11.18 Boucles for emboîtées174
      • 11.19 Calcul de xn par dichotomie174
      • 11.20 Tester si un nombre entier est premier (naïf)174
      • 11.21 Nombres premiers entre eux. Le PGCD175
      • 11.22 Calcul de ab modulo n dans les grands entiers176
      • 11.23 Tester si un grand nombre est premier (Fermat)176
      • 11.24 Calcul des nombres de Fibonacci177
      • 11.25 Vérification qu'un dé est correctement truqué178
      • 11.26 Dérivation numérique approchée179
      • 11.27 Approximation numérique d'un sinus180
      • 11.28 Valeur approchée d'une intégrale simple180
      • 11.29 Coût du (temps de) calcul de n !182
      • 11.30 Rectification d'un arc paramétré183
      • 11.31 Valeur approchée d'une intégrale double184
      • 11.32 Centre de gravité d'une figure plane185
      • 11.33 Solution approchée d'une équation (dichotomie)185
      • 11.34 Solution approchée d'une équation (Newton)186
      • 11.35 Régime d'un système dépendant du temps186
      • 11.36 Cryptographie à clé publique (RSA/1)187
      • Chaînes de caractères
      • 11.37 Affichage d'une table de multiplication188
      • 11.38 Construction de l'alphabet minuscule188
      • 11.39 Les plus longs mots d'une phrase188
      • 11.40 Travail textuel sur les chiffres d'un entier189
      • 11.41 Récurrence sur des chaînes189
      • 11.42 Le codage secret selon César190
      • 11.43 Les palindromes190
      • 11.44 Le nombre de Champernowne191
      • 11.45 Vérification d'un code bancaire IBAN191
      • 11.46 Les règles de réécriture192
      • 11.47 L'addition binaire avec retenue192
      • 11.48 Analyse lexicale à la main193
      • 11.49 HTML et Unicode194
      • Graphisme de la tortue, Processing
      • 11.50 Graphismes polaire et cartésien194
      • 11.51 Tracé d'un cercle avec centre et rayon195
      • 11.52 Mangez des oursins !195
      • 11.53 Un traceur minimal de courbes paramétrées195
      • 11.54 Dessin d'une courbe en coordonnées polaires196
      • 11.55 Le jeu du chaos197
      • 11.56 Une courbe fractale du dragon197
      • 11.57 La tortue, le hasard et les flaques198
      • 11.58 Génération d'une fractale par un L-système199
      • 11.59 Graphisme avec Processing.py200
      • Les séquences
      • 11.60 Tirage d'un élément aléatoire dans une séquence202
      • 11.61 Courbe d'un système dépendant du temps203
      • 11.62 Inversion des mots d'une phrase203
      • 11.63 Recherche séquentielle dans une liste non triée203
      • 11.64 Comptage d'éléments dans une collection204
      • 11.65 Extraction d'éléments dans une séquence204
      • 11.66 Recherche dichotomique dans une liste triée205
      • 11.67 Compactage d'une liste205
      • 11.68 Le drapeau hollandais de Dijkstra206
      • 11.69 Les fonctionnelles map et reduce207
      • 11.70 Vérification des éléments d'une collection208
      • 11.71 Attention aux mutations dans les listes !208
      • 11.72 Le triangle de Pascal209
      • 11.73 Tri stupide d'une liste209
      • 11.74 Tri d'une liste sur place, par sélection211
      • 11.75 Chronométrage d'un algorithme sur une longue liste aléatoire211
      • 11.76 Tri par insertion : récurrence et itération212
      • 11.77 Tri d'une liste avec copie, par fusion213
      • 11.78 Tri rapide214
      • 11.79 Trier sur des critères exotiques215
      • 11.80 Crible d'Ératosthène pour les nombres premiers215
      • 11.81 Cryptographie à clé publique (RSA/2)216
      • 11.82 Unicode et les bizarreries typographiques217
      • 11.83 Opérations sur des matrices218
      • 11.84 Construction d'un carré magique d'ordre impair219
      • 11.85 Message caché dans une image220
      • 11.86 Automates cellulaires 1-D220
      • 11.87 Les piles de données222
      • 11.88 Retour sur la pile de récursion223
      • 11.89 Polynômes creux225
      • 11.90 Polynômes de Legendre227
      • 11.91 Polynôme d'interpolation de Lagrange228
      • 11.92 Racines simples d'un polynôme (1)229
      • 11.93 Racines simples d'un polynôme (2)231
      • Itérateurs, ensembles et dictionnaires
      • 11.94 Fermeture-éclair : l'itérateur zip232
      • 11.95 Générateur des éléments distincts d'une liste233
      • 11.96 Réunion et intersection de listes233
      • 11.97 Produit cartésien d'ensembles234
      • 11.98 Combinaisons dans un ensemble234
      • 11.99 Dictionnaires et fréquences235
      • 11.100 Mémorisation : remplacer le temps par l'espace236
      • 11.101 Automate cellulaire 2-D : le Jeu de la Vie237
      • 11.102 Arbres binaires d'expression239
      • 11.103 La machine à pile VRISC1242
      • 11.104 La machine VRISC2 : les sauts à étiquette243
      • 11.105 Parcours itératif d'un arbre binaire245
      • 11.106 Introduction à la simplification symbolique246
      • 11.107 L'algorithme de dérivation symbolique248
      • 11.108 Calcul numérique avec numpy250
      • 11.109 Ajustement numérique d'une courbe avec scipy253
      • Expressions régulières
      • 11.110 Quelques expressions régulières255
      • 11.111 Mais tout n'est pas régulier !256
      • 11.112 Fin de l'analyseur lexical du § 8.2 avec lex257
      • 11.113 Fin de l'analyseur syntaxique du § 8.3 avec yacc258
      • 11.114 Une calculette interactive avec lex & yacc259
      • 11.114.1 L'analyseur lexical (lexer)260
      • 11.114.2 L'analyseur syntaxique (parser)261
      • 11.114.3 L'évaluateur262
      • 11.115 Retour sur les cpbb à dos de yacc264
      • Fichiers, Web
      • 11.116 Écriture dans un fichier texte sur disque264
      • 11.117 Lecture d'un fichier texte sur disque265
      • 11.118 Lecture d'un fichier au format CSV265
      • 11.119 Transformation d'un fichier texte sur disque266
      • 11.120 Construction d'un graphique Excel en Python266
      • 11.121 Trouver une heure locale sur Internet268
      • 11.122 Échange de données au format JSON269
      • 11.123 Sérialisation des données : json ou pickle ?270
      • 11.124 Lancer un programme à heure donnée : cron271
      • 11.125 Dissection d'une page HTML avec Beautiful Soup272
      • Objets
      • 11.126 Classe des matrices n x p sans numpy276
      • 11.127 Naissance d'une tortue avec Processing.py277
      • 11.128 Incursion dans le graphisme 3D281
      • 11.129 Ajustement par programmation génétique283
      • 11.130 Introduction au moteur physique pymunk286
      • 11.131 Moteur physique appliqué : pendule de Newton292
      • 11.132 Décoration de la récurrence terminale294
      • 11.133 Neurones : le perceptron295
      • 11.134 Neurones : la rétro-propagation (théorie)298
      • 11.135 Neurones : la rétro-propagation (pratique)301
      • 11.136 Programmation audio (théorie)304
      • 11.137 Programmation audio avec Beads (pratique)308
      • Bibliographie 313
      • Index 317

  • Origine de la notice:
    • Electre
  • Disponible - 681.234 ROY

    Niveau 3 - Informatique