.. $Id: documentation.rst.in 14117 2011-05-11 08:12:37Z ycadour $ ######################## Usages et bibliothèques ######################## Le langage Python est accompagné de nombreux modules qui permettent aux développeurs d'avoir, de base, de nombreuses fonctionnalités. Dans ce chapitre nous allons étudier quelques modules présents dans le langage. ========================= Itérateurs VS Générateurs ========================= Toute la clé réside dans le stockage mémoire de vos données ! https://docs.python.org/fr/3/tutorial/classes.html#iterators :: >>> # Build and return a list >>> def firstn(n): >>> num, nums = 0, [] >>> while num < n: >>> nums.append(num) >>> num += 1 >>> return nums >>> >>> sum_of_first_n = sum(firstn(1000000)) Excercice : faites une approche par itérateur (pattern) de cette fonction. Faites de même avec un générateur. https://wiki.python.org/moin/Generators#CA-31c8468eb74aeab199a158c358a0dcdea389911d_1 Les itérateurs amenés par Python en standard : https://docs.python.org/3.7/library/itertools.html =============================================================== Passage d'arguments par fichier de configuration : ConfigParser =============================================================== L'objectif est ici d'appliquer un parsing sur des fichiers type *.ini pour changer une configuration d'application sans altérer le code python. Tutoriel et toutes les infos : https://docs.python.org/3.8/library/configparser.html Examples: https://wiki.python.org/moin/ConfigParserExamples =============================== Pré-traitement: les décorateurs =============================== L'objectif est ici d'appliquer un pré-traitement au moment de l'appel d'une *fonction*. Un cas très concret: retourner le résultat d'une fonction dont le calcul a déjà été effectué ("cache"). Pour bien comprendre, voici un tutoriel: https://openclassrooms.com/courses/apprenez-a-programmer-en-python/les-decorateurs Exercice : obtenir le temps d'exécution d'une fonction en lui apposant un décorateur (via cProfile) ============================= Passage d'arguments: argparse ============================= Faciliter le passage d'arguments pour votre module Python sans l'artisanal "argsysv" ! Tutoriel en ligne : Tutoriel : https://docs.python.org/3.7/howto/argparse.html *Exercice: tests_passage_arguments.py* ========= Module os ========= Le module os fournit un grand nombre de fonctions sur la manipulation du système. :: >>> import os *Exercice: tests_remplacer_motif_fichier_texte.py* ========= Module csv ========= Le module csv fournit un grand nombre de fonctions sur la manipulation de fichiers CSV. :: >>> import csv *Exercice: tests_csv.py* ========= Module Tkinter ========= Le module Tkinter fournit une bibliothèque complète pour la création d'interface utilisateur par progammation événementielle. :: https://pythonbasics.org/tkinter/ >>> from Tkinter import * La bible Tkinter: https://insolor.github.io/effbot-tkinterbook-archive/ Exercice : Interface Tk pour coder/décoder des fichiers ascii via le crytpage de César.