====== Python : quelques références, trucs et astuces ====== FIXME : à ajouter : * [[https://learnbyexample.github.io/py_resources/beginners.html|Python Resources for Everybody]] * [[https://github.com/Asabeneh/30-Days-Of-Python|Asabeneh/30-Days-Of-Python: 30 days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days. This challenge may take more than100 days, follow your own pace.]] * [[https://github.com/geekcomputers/Python|geekcomputers/Python: My Python Examples]] * [[https://github.com/crazyguitar/pysheeet|crazyguitar/pysheeet: Python Cheat Sheet]] * [[https://github.com/dabeaz-course/practical-python|dabeaz-course/practical-python: Practical Python Programming (course by @dabeaz)]] * [[https://dabeaz-course.github.io/practical-python/|Welcome! | practical-python]] * [[https://github.com/30-seconds/30-seconds-of-python|30-seconds/30-seconds-of-python: Short Python code snippets for all your development needs]] * [[https://github.com/trekhleb/learn-python|trekhleb/learn-python: 📚 Playground and cheatsheet for learning Python. Collection of Python scripts that are split by topics and contain code examples with explanations.]] * [[https://github.com/TheAlgorithms/Python|TheAlgorithms/Python: All Algorithms implemented in Python]] ---- Python est un langage de programmation de haut niveau, libre, polyvalent, facilement accessible aux débutants, mais permettant aussi de réaliser des applications sophistiquées et professionnelles. Certains l'utilisent simplement comme langage de script, pour automatiser et faciliter différentes tâches informatiques. Cette page est destinée à en faciliter l'apprentissage. Pour une introduction plus complète, //cf.// la [[http://fr.wikipedia.org/wiki/Python_(langage)|page Python sur le site de Wikipedia en français]] ou [[http://en.wikipedia.org/wiki/Python_(programming_language)|la page en anglais]] ! {{ http://upload.wikimedia.org/wikipedia/commons/thumb/f/f8/Python_logo_and_wordmark.svg/500px-Python_logo_and_wordmark.svg.png }} La branche actuelle de Python est celle de Python 3, en version 3.11 (décembre 2022) qui apporte de nombreuses amélioration mais n'est pas rétro-compatible avec la branche antérieure 2.7.x, qui n'est plus supportée, bien que certaines librairies logicielles n'aient pas fait l'objet d'une conversion vers la branche 3 (il est préférable alors d'éviter l'utilisation de ces programmes). * Pourquoi apprendre à programmer en Python ? * **[[http://issuu.com/wile/docs/article_lebigot|Cliquez ici si vous voulez savoir pourquoi apprendre d'abord Python !]]** * [[http://www.javaworld.com/article/2452940/learn-java/python-bumps-off-java-as-top-learning-language.html|Python est le langage le plus utilisé pour l'apprentissage de la programmation]] * //cf.// aussi l'article [[https://www.fullstackacademy.com/blog/nine-best-programming-languages-to-learn|The 9 Best Programming Languages to Learn in 2021]] ainsi que le livre [[http://www.oreilly.com/programming/free/python-in-education.csp|Python in Education (Teach, Learn, Program)]], par Nicholas H. Tollervey. ===== Références recommandées pour débutants ===== {{ http://upload.wikimedia.org/wikipedia/en/thumb/2/2d/Angry_Birds_promo_art.png/220px-Angry_Birds_promo_art.png?100x100}} Si vous n'avez vraiment encore aucune idée de ce qu'est la programmation, passez une heure amusante à **[[http://learn.code.org/|apprendre les rudiments de la programmation avec scratch]]**, et plus si affinité ! [[https://scratch.mit.edu/|Scratch]] utilise un environnement visuel et le [[http://fr.wikipedia.org/wiki/Glisser-d%C3%A9poser|glisser-déposer]], ce qui facilite les premiers pas en programmation (//cf.// [[https://www.youtube.com/watch?v=_Mwc1gc77dc|cette vidéo]]). Il existe d'autres [[https://en.wikipedia.org/wiki/Category:Visual_programming_languages|langages de programmation visuels]] orientés vers l'apprentissage de la programmation : [[http://www.alice.org/index.php|Alice]], [[https://developers.google.com/blockly/|blockly]], [[http://snap.berkeley.edu/|snap!]], [[http://www.squeakland.org/|Squeak]], [[https://www.robomindacademy.com/go/robomind/home|RoboMind]],... [[https://edublocks.org|EduBlocks]] permet la transition de l'apprentissage par blocs via Scratch vers la programmation en Python ([[https://github.com/AllAboutCode/EduBlocks|GitHub EduBlocks]]). * **Installer Python :** [[http://python.org/|Python.org]], le site où télécharger le logiciel **libre**, en version de base. Des versions existent pour [[https://www.python.org/downloads/windows/|Windows]], [[https://www.python.org/downloads/mac-osx/|Mac OS X]] et [[https://www.python.org/downloads/source/|Linux]], mais dans ce dernier cas, il est préférable d'opter pour la version proposée par votre distribution Linux particulière. Soyez vigilant aussi dans le choix entre les versions 32 bits et 64 bits ! * la **branche 2 n'est plus supportée depuis janvier 2020 !** (à éviter absolument !!) * la **branche 3** : [[https://www.python.org/downloads/release/python-3111/|version 3.11.1]] en décembre 2022. //Cf.// la documentation : * [[https://docs.python.org/3/using/index.html|Python Setup and Usage]] * [[https://docs.python.org/3|Documentation complète]] * **[[https://docs.python.org/fr/3/tutorial/|Le tutoriel Python]]** (site officiel) ==== Essayer, débuter, apprendre les bases ... ==== Que vous choisissiez le tutoriel de la documentation officielle, ou un voire quelques autres documents pour votre initiation à Python, il est important de ne pas multiplier les sources, au risque de sans cesse relire les mêmes informations sur des notions de base. Dès que vous avez un peu compris les grands principes, comment fonctionne le langage, l'édition de programmes,... il est plus intéressant de développer votre expérience via des petits projets personnels, qui seront autant d'occasions de rechercher de la documentation, des exemples, des recommandations,... **Évitez d'utiliser des documents trop anciens, surtout s'ils n'ont pas été adaptés pour la branche Python 3 !** * [[https://fr.futurecoder.io/|futurecoder]] : **cours gratuit et interactif permettant aux personnes d'apprendre elles-mêmes la programmation en Python, en particulier aux débutants complets en programmation. Il est soigneusement conçu pour réduire la frustration et guider l'utilisateur tout en veillant à ce qu'il apprenne à résoudre les problèmes. L'objectif est de permettre à un maximum de personnes d'apprendre la programmation.** * [[http://www.codecademy.com/|Codecademy]] : Cours introductifs,... FIXME * [[https://repl.it/languages/python3|repl.it]] : **site web permettant d'explorer interactivement des langages de programmation dont Python, sans rien installer !** * [[http://www.pythontutor.com/|Online Python tutor]] : **apprendre et pratiquer la programmation Python dans un navigateur. Les exécutions sont décomposées et visualisées pas à pas !** * [[https://thonny.org/|Thonny]], IDE Python conçu et idéal pour les débutant dans ce langage. Il est multi-plateforme, dispose d'un debugger intégré, d'un évaluateur d'expressions à l'exécution, la complétion de code, etc ... * Autres IDE web, en ligne : * [[https://www.codechef.com/ide|CodeChef Online Compiler]] * [[https://ide.geeksforgeeks.org/|IDE - GeeksforGeeks]] * [[http://pythonfiddle.com/]] * [[http://www.skulpt.org|skulpt]], implémentation de python dans un navigateur * [[http://www.learnpython.org/|LearnPython.org]] : tutoriel interactif Python avec exécution de code (en anglais, avec des publicités) * [[https://groklearning.com/csedweek/|First experience programming]], specially designed for [[http://code.org/|the Hour of Code]] * [[http://www.loria.fr/~quinson/Teaching/JLM/|Programmer's Learning Machine]], un programme qui vous aide à apprendre les bases de la programmation. Nécessite l'installation d'une machine java. //N.B.// : pensez à configurer l'interface en français et le codage en langage Python. * [[http://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3|Non-Programmer's Tutorial for Python 3]] * [[https://www.sololearn.com/Course/Python/|Python 3 Tutorial]], site interactif, de SoloLearn, avec [[https://code.sololearn.com/#py|utilisation de Python dans le navigateur]] * [[http://programminginpython.com/|Programming in Python]], algorithmes et programmes de base, avec visualisation de leur exécution * [[https://stepik.org/course/Adaptive-Python-568/|Adaptive Python]], cours adaptatif sur stepik.org (résolution de problèmes et vérification) * [[https://www.coursera.org/course/interactivepython|An Introduction to Interactive Programming in Python (Beginners)]] (cours en ligne Coursera) * [[https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-9|Introduction to Computer Science and Programming Using Python]], cours en ligne sur edX * la page [[https://wiki.python.org/moin/BeginnersGuide/NonProgrammers|Python for Non-Programmers]] sur le site officiel Python.org * [[https://www.datacamp.com/courses/intro-to-python-for-data-science|Cours DataCamp "Intro to Python for Data Science"]] * Applications mobiles de DataCamp (Cours introductifs sur Python, R,...) * [[https://play.google.com/store/apps/details?id=com.datacamp|Application Android sur Google Play]] * [[https://itunes.apple.com/us/app/datacamp-learn-r-python/id1263413087|sur App Store for iOS devices]] * [[https://github.com/Asabeneh/30-Days-Of-Python|30 Days Of Python]] 30 days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days * [[https://www.freecodecamp.org/news/python-programming-course/|Free Python Programming Course for beginners]], Beau Carnes, 2022 (vidéos Youtube de FreeCodeCamp.org) ==== Livres, manuels ou exerciseurs de niveau intermédiaire : ==== * [[https://openclassrooms.com/fr/search?page=1&query=python]], tutoriels sur openclassrooms * Le livre "[[http://inforef.be/swi/python.htm|apprendre à programmer avec Python]]", de Gérard Swinnen (**librement téléchargeable**, et disponible en librairie, chez l'éditeur [[http://www.eyrolles.com/Informatique/Livre/apprendre-a-programmer-avec-python-9782212124743|Eyrolles, ISBN 978-2-212-12474-3]]). Une version est également disponible sur le site de wikibooks.org : [[http://fr.wikibooks.org/wiki/Apprendre_à_programmer_avec_Python]] (voir aussi [[http://fr.wikibooks.org/wiki/Programmation_Python]]) * Livre **librement téléchargeable** "[[http://www.greenteapress.com/thinkpython/thinkpython.html|Think Python, How to Think Like a Computer Scientist]]" de Allen B. Downey (Cambridge University Press) * [[https://www.blog.pythonlibrary.org/2017/01/23/python-101-now-free-on-leanpub-permanently/|Python 101]], Michael Driscoll (téléchargement gratuit) * [[http://inventwithpython.com/|Invent with Python]], 4 livres : * Learn how to program ! → [[https://automatetheboringstuff.com/|Automate the Boring Stuff with Python]] * Develop video games ! → [[http://inventwithpython.com/chapters/|Invent Your Own Computer Games with Python]] * Make games with graphics ! → [[http://inventwithpython.com/pygame/chapters/|Making Games with Python & Pygame]] * Encrypt messages and hack ciphers ! → [[http://inventwithpython.com/hacking/chapters/|Hacking Secret Ciphers with Python]] * [[https://developers.google.com/edu/python/|Google's Python Class]] ---- ===== Références pour une utilisation (scientifique) plus avancée ===== Voir cette [[https://makina-corpus.com/blog/metier/2016/presentation-de-lecosysteme-python-scientifique|présentation de l'écosystème Python scientifique]], par Gaël Pegliasco (10/11/2016) ==== Distributions et installation : ==== * [[https://store.continuum.io/cshop/anaconda/|Anaconda]], distribution python libre et multiplateforme (Windows, GNU/Linux, Mac OS), avec le système de Notebook web Jupyter en prime... Si les conditions sont limitées (materiel, réseau,...), il peut être plus intéressant d'installer la version [[https://docs.conda.io/en/latest/miniconda.html|miniconda]] qui permet de compléter par la suite et à la demande l'installation de librairies. **→ //Cf.// la page dédiée sur [[anaconda|Anaconda]]** * [[http://python-xy.github.io/|Python(x,y)]], **distribution libre orientée scientifique et calcul numérique**, comprenant les interfaces graphiques Qt et l'environnement de développement libre Eclipse (environ 850 MB pour la version Windows, janvier 2016). * La distribution [[https://www.enthought.com/products/canopy/academic/|Enthought Canopy for Academic Use]], nécessite un email d'une institution académique reconnue pour l'installation (Windows, Mac OS X ou GNU-Linux. Il existe aussi une version gratuite [[https://www.enthought.com/products/epd/free/|Canopy Express]]. Ces distributions incluent beaucoup d'outils scientifiques, et l'interface wxPython. * Enthought Python webinars : [[http://enthought.com/training/webinars.php]] * Méthode "manuelle" sous **Windows** : installer le [[http://www.python.org/|Python de base]], [[http://www.jetbrains.com/pycharm/PyCharm|PyCharm]] et ensuite [[http://www.jetbrains.com/pycharm/webhelp/installing-uninstalling-and-upgrading-packages.html|installer ou mettre à jour les librairies]] via [[https://pypi.python.org/pypi|le dépôt de librairies PyPI]] * Sous **Mac OS X** : [[http://www.lowindata.com/2013/installing-scientific-python-on-mac-os-x/|tutoriel "installing scientific Python on Mac OS X"]] * [[http://www.activestate.com/activepython/downloads|Active Python community edition]] : une autre distribution Python * //cf.// la [[http://www.activestate.com/activepython/downloads|page de téléchargement]], en version 2 ou 3, 32 ou 64 bits, Windows, Mac OS X ou GNU-Linux * Sous une distribution **GNU-Linux**, on peut aussi utiliser un outil standard d'installation pour configurer son environnement Python ((cela ressemble à ceci sous Ubuntu : sudo apt-get install python-all python-all-dev idle python-numpy python-scipy python-matplotlib python-matplotlib-doc python-visual python-doc python-examples diveintopython python-imaging-doc python-pp python-jinja2 python-markdown python-pygments python-landslide ipython ipython-qtconsole ipython-doc ipython-notebook python-pip python-scitools mayavi2 python-numexpr python-pandas python-pygame)), et pareillement avec python3 : ((cela ressemble à ceci sous Ubuntu : sudo apt-get install python 3 idle3 spyder3 python3-matplotlib python3-scipy python3-numpy python3-pil python3-pip python3-pandas)). Les librairies supplémentaires sont facilement ajoutées dans l'espace utilisateur par les commandes "pip install libraryname" ou "pip3 install libraryname" (utiliser éventuellement le paramètre "--upgrade"). * Version portable de Python : [[http://www.portablepython.com/site/home/]] * [[http://www.pyzo.org/index.html|Pyzo]], environnement basé sur Python 3 et des librairies scientifiques * [[http://enacit1.ep, fl.ch/introduction-python/outils-python.html|Python et outils associés - Installation et utilisation]], par Jean-Daniel Bonjour (EPFL-ENAC-IT) (FIXME : à suivre pour sélection des recommandations) * Python sur un smartphone ou une tablette Android : * [[https://play.google.com/store/apps/details?id=ru.iiec.pydroid3&hl=fr|Pydroid 3]] * Cf. cette [[https://becominghuman.ai/pydroid-the-best-ide-for-android-a3822f980525|réf]] * [[https://towardsdatascience.com/how-to-install-python-and-jupyter-notebook-onto-an-android-device-900009df743f|How to Install Python and Jupyter Notebook onto an Android Device - Increase your productivity when you’re waiting in a queue or are on the go]] Angelica Lo Duca, Medium, 08/06/2021 * Python sur un iPhone ou iPad (Apple iOS) : * [[http://omz-software.com/pythonista/index.html|Pythonista]] * [[https://apps.apple.com/us/app/pyto-python-3/id1436650069|Pyto]] (3-day Trial $0.00, Full Version $14.99, Lite Version $7.99) === Outils web interactifs === * [[http://www.pythontutor.com/|Python tutor]] * [[http://www.skulpt.org/|Skulpt]], implémentation en javascript de Python 2, permettant de l'utiliser dans un navigateur, côté client. Utilisé dans des cours. * [[https://trinket.io/|Trinket]], permet l'inclusion de code et de son exécution dans n'importe quel navigateur * [[http://runestoneinteractive.org|Runestone Interactive]] * [[http://repl.it/languages/Python|repl.it]] : **site web permettant d'explorer interactivement des langages de programmation dont Python, sans rien installer !** * [[https://www.getdatajoy.com|DataJoy]] : **environnement complet pour programmer en Python dans un navigateur** ==== Éditeurs ==== Quelque soit l'éditeur intégré utilisé, vous devrez le configurer : utilisation de 4 espaces plutôt que la tabulation pour les indentations, indication de l'interpréteur et son chemin, python ou python3. L'utilisation du [[http://fr.wikipedia.org/wiki/Shebang|shebang]] et l'indication de l'encodage sont recommandées. * [[http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#Python|Éditeurs et environnements de développement intégrés]] : * Idle est l'éditeur standard (Idle3 pour la version Python3) * [[http://www.geany.org/|Geany]] * [[http://www.scintilla.org/SciTE.html|SciTE]], un éditeur de texte gérant la syntaxe Python, permettant des impressions de qualité * [[http://eric-ide.python-projects.org/|The Eric Python IDE]] (eric4 basé sur Qt4/Python 2 et eric5 basé sur Qt4/Python 3) * [[https://code.google.com/p/spyderlib/|Spyder]] (**éditeur proposé avec la distribution Anaconda**) * [[http://thonny.org/|Thonny]], Python IDE for beginners * [[http://www.eclipse.org/|Eclipse]] * [[http://brainwy.github.io/liclipse/|LiClipse]] (plus léger, non-libre) * [[http://www.jetbrains.com/pycharm/|Pycharm]], en version communautaire libre (et en version professionnelle non libre) * JetBrains propose également une version [[https://www.jetbrains.com/pycharm-educational/|PyCharm Educational Edition]] (cf aussi [[http://blog.jetbrains.com/pycharm/2014/10/jetbrains-debuts-pycharm-educational-edition/|ici]] et [[http://blog.jetbrains.com/pycharm/2015/09/announcing-pycharm-edu-2-simple-is-better-than-complex/|ici]], sous une licence spécifique (donc non libre) * [[http://www.activestate.com/komodo-edit|Komodo Edit]] * [[http://www.activestate.com/komodo-ide|Komodo IDE]] (non libre) * [[https://code.google.com/p/pyscripter/|PyScripter]] (spécifique Windows) * [[https://realpython.com/blog/python/vim-and-python-a-match-made-in-heaven/|Configurer Vim pour Python]] * comparatifs * [[https://realpython.com/blog/python/python-ides-code-editors-guide/|Python IDEs and Code Editors (Guide)]] ==== Livres ==== * [[http://www.diveintopython3.net/|Dive Into Python 3]], livre sous licence libre dans la version revue pour la nouvelle branche Python 3 (dont la [[https://github.com/framasoft/plongez-dans-python3|traduction en français]] n'est malheureusement que commencée). En version 2 : [[http://diveintopython.net/|Dive Into Python]] * Livre "[[http://www.springer.com/math/cse/book/978-3-642-02474-0|A Primer on Scientific Programming with Python]]", de Hans Petter Langtangen, Springer 2009 * Livre "[[http://www.springer.com/math/cse/book/978-3-540-73915-9|Python Scripting for Computational Science]]", de Hans Petter Langtangen 3rd edition, Springer 2009 (voir le site internet [[http://folk.uio.no/hpl/scripting/]] pour les exemples et références) * Livre [[http://pythonforengineers.com/|Python For Scientists And Engineers]], gratuit et en ligne, avec code sous licence libre (MIT) * Livre "[[http://www.eyrolles.com/Informatique/Livre/programmation-python-9782212116779|Programmation Python - Syntaxe, conception et optimisation]]", de Tarek Ziadé, Eyrolles, 2008. * "[[http://www.pearson.ch/Informatik/CampusPress/1449/9782744021497/Python.aspx|Guide de survie Python]]", de Brad Dailey, campus press, 2007. * [[http://www.network-theory.co.uk/python/intro/|An Introduction to Python - The Python Tutorial]] (version 2.5), by Guido van Rossum and Fred L. Drake, Jr. * [[http://scipy-lectures.github.com/|Python Scientific lecture notes]] : Teaching material on the scientific Python ecosystem, a quick introduction to central tools and techniques * [[http://web.isen-bretagne.fr/livres/python/index.php|Python en Prépa »]], co-écrit par des étudiants et leur enseignant, ISEN Brest * [[http://www.learningpython.com/|Learning Python]] de Mark Mruss : pour les moins pressés... * [[http://learnpythonthehardway.org/book/|Learn Python The Hard Way, 2nd Edition]], free HTML version of the book * [[https://nostarch.com/pythoncrashcourse2e|Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction To Programming]] Eric Matthes, 2019 ISBN: 978-1593279288 + [[http://bedford-computing.co.uk/learning/wp-content/uploads/2015/10/No.Starch.Python.Oct_.2015.ISBN_.1593276036.pdf|pdf édition de 2015]] * Autres livres de références : * Beginning Python, Peter Norton et al., Wiley 2005 * Beginning Python - From Novice to Professional Magnus, Lie Hetland, Apress 2005. * Python Programming: An Introduction to Computer Science - John M. Zelle, 2004 * [[http://shop.oreilly.com/product/0636920003434.do|Head First Python]] de Paul Barry, O'Reilly Media * [[http://www.manning.com/briggs/|Hello! Python]] de Anthony Briggs * [[http://www.greenteapress.com/thinkpython/thinkpython.html|Think Python - How to Think Like a Computer Scientist]] de Allen B. Downey (sous licence libre) * [[http://shop.oreilly.com/product/9781565924642.do|Learning Python]] de Mark Lutz, David Ascher, O'Reilly Media, 1999 * [[http://www.oreilly.com/programming/free/functional-programming-python.csp|Functional Programming in Python]], David Mertz, O'Reilly, June 2015 * [[http://www.amberbiology.com/python-book|Python for the life science]], à paraître (2016) * [[http://shop.oreilly.com/product/9781593276409.do| Doing Math with Python]], Use Programming to Explore Algebra, Statistics, Calculus, and More! By Amit Saha * [[http://www.southampton.ac.uk/~fangohr/teaching/python/book.html|Python for Computational Science and Engineering]] * Python 101 & Python 201, par Michael Driscoll * livres de Nicolas Rougier : [[https://github.com/rougier]] * [[https://github.com/rougier/scientific-visualization-book|Scientific Visualization: Python & Matplotlib]] * [[http://www.labri.fr/perso/nrougier/from-python-to-numpy/|From Python to Numpy]], 2017 - Nicolas P. Rougier * [[https://press.princeton.edu/books/paperback/9780691223650/a-students-guide-to-python-for-physical-modeling|A Student's Guide to Python for Physical Modeling: Second Edition]] Jesse M. Kinder and Philip Nelson, Princeton University Press, 2021, ISBN: 9780691223650 * Livres sur [[http://en.wikibooks.org/wiki/Main_Page|wikibooks]] : * [[http://en.wikibooks.org/wiki/Non-Programmer's_Tutorial_for_Python|Non-Programmer's Tutorial for Python]] * [[http://en.wikibooks.org/wiki/Think_Python|Think Python]] * [[http://en.wikibooks.org/wiki/Python_Programming|Python Programming]] * [[http://en.wikibooks.org/wiki/How_to_Think_Like_a_Computer_Scientist:_Learning_with_Python_2nd_Edition|How to Think Like a Computer Scientist: Learning with Python 2nd Edition]] * Livres scientifiques basés sur Python : * [[http://shop.oreilly.com/product/0636920033424.do|Effective Computation in Physics. Field Guide to Research with Python]] + [[https://github.com/physics-codes/examples|exemples]] * FIXME : [[https://betterprogramming.pub/4-python-books-i-read-as-a-self-taught-programmer-5a5453840cdb|4 Python Books I Read as a Self-Taught Programmer - Books to learn Python to create games, websites, automate tasks, and more]] Frank Andrade, Medium, 28/04/2021 ==== Tutoriels, cours ==== * [[http://python.developpez.com/]] avec une section contenant des exemples catégorisés et des tutoriels (en français) * Cours * [[http://www.dsimb.inserm.fr/~fuchs/python/|Cours de Python]] (les bases), Université Paris 7 / UFR Biochimie (Patrick Fuchs) * "[[http://www.phys.umontreal.ca/~mousseau/phy1234/notes/notes_0.html|Introduction à la physique numérique]]" de Normand Mousseau, Montréal * [[http://www.iut-orsay.fr/dptmphy/Pedagogie/|Page Python à l'IUT d'Orsay]] notes de cours, exercices (avec corrigés), TP, conseils pour l'installation de Python... * [[http://perso.limsi.fr/pointal/python:cours_prog|Cours Programmation Python]] de Laurent Pointal * [[http://www.fil.univ-lille1.fr/~marvie/python/index.html|Initiation à Python par l'exemple]], de Raphael MARVIE (Univ. Lille I), + [[http://www.fil.univ-lille1.fr/~marvie/download/initiation_python.pdf|fichier pdf]] * [[http://isn.irem.univ-mrs.fr/2011-2012/formation/index.html|Informatique et Sciences du Numérique]], Julien Lefèvre, Université d’Aix-Marseille (nombreux exemples/applications en Python) * [[http://fsincere.free.fr/isn/python/cours_python.php|Cours d'introduction au langage de programmation Python]], de Fabrice Sincère, pour les terminales S en spécialité informatique (yc exercices et QCM) * [[http://enacit1.epfl.ch/introduction-python/|Programmation Python - Une brève introduction]], par Jean-Daniel Bonjour (EPFL-ENAC-IT) * [[http://www.python-course.eu/index.php|Python Course]], tutoriel en anglais sur Python 2, Python 3, Tkinter et quelques sujets avancés * [[https://www.coursera.org/course/programming1|Learn to Program: The Fundamentals (Python) (Intermediate)]] (cours en ligne Coursera) * [[https://www.coursera.org/course/programming2|Learn to Program: Crafting Quality Code (Python) (Intermediate)]] (cours en ligne Coursera) * [[http://www.unpeud.info/python/introduction|Tutoriel de base de Python par Arnaud Kientz]] * [[http://www.poromenos.org/tutorials/python|Learn Python in 10 minutes]], pour les pressés... * [[http://pages.physics.cornell.edu/~myers/teaching/ComputationalMethods/python/NanoPy/NanoPy.html|NanoPy]] is a series of Python nano-tutorials and programming tips * [[http://www.tutorialspoint.com/|Python tutorials sur tutorialspoint.com]] * [[http://code.google.com/edu/languages/google-python-class/|Google's Python Class]] : free class for people with a little bit of programming experience who want to learn Python... * [[https://intellipaat.com/tutorial/python-tutorial/|Python tutorial on Intelipaat]] * [[http://www.davekuhlman.org/python_book_01.html|A Python Book: Beginning Python, Advanced Python, and Python Exercises]], Dave Kuhlman (Open Source MIT License) * Tutoriels ciblés : * [[http://www.analyticsvidhya.com/blog/2015/06/regular-expression-python/|Beginners Tutorial for Regular Expressions in Python]] * [[https://medium.com/@valeria.aynbinder.edu/python-regular-expressions-cheat-sheet-cd0992c36f6f|Python Regular Expressions — cheat sheet - Many code examples + useful tips]] Valeria Aynbinder, Medium, 17/03/2022 * [[http://people.duke.edu/~ccc14/sta-663/index.html|Computational Statistics in Python]] (y compris quelques informations plus générales) * [[http://www.programiz.com/python-programming|Python programming tutorial sur Programiz]] * [[https://www.codeschool.com/courses/try-python|Python tutorial on basics]], code school (vidéos) * [[http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html|Code Like a Pythonista: Idiomatic Python]] (2007) * [[https://www.datacamp.com/courses/tech:python/topic:programming|Cours DataCamp sur la programmation Python]] * Mooc sur Fun-MOOC, par l'INRIA : * [[https://www.fun-mooc.fr/courses/inria/41001S03/session03/about|Python : des fondamentaux à l'utilisation du langage]] * [[https://www.fun-mooc.fr/courses/course-v1:UCA+107001+session01/about|Python 3 : des fondamentaux aux concepts avancés du langage]] * [[https://github.com/jerry-git/learn-python3|Learn Python 3]], GitHub repository containing a collection of materials for teaching/learning Python 3 * [[https://morioh.com/p/8460e405ac4f?f=5c21fb01c16e2556b555ab32|Python Tutorial in 30 Minutes]] (Crash Course for Absolute Beginners) ==== Conférences ==== * [[http://www.afpy.org/|AFPY]] - Association Francophone PYthon, organisateur d'une conférence annuelle : * [[http://dl.afpy.org/pycon-fr-08/|PyCONFr 2008]] * [[http://dl.afpy.org/pycon-fr-09/|PyCONFr 2009]] * [[http://www.pycon.fr/conference/edition2010|PyConFr 2010]] * [[http://www.pycon.fr/conference/edition2011|PyConFr 2011]] * [[http://www.pycon.fr/2012/|PyConFr 2012]] * [[http://www.pycon.fr/2013/|PyConFr 2013]] * [[http://www.pycon.fr/2014/|PyConFr 2014]] * [[http://pycon.org|pycon.org]] : la plupart des conférences Python * [[http://pyvideo.org/|pyvideo.org]] : vidéos liées à Python (conférences,...) * [[http://conference.scipy.org/|Conférences SciPy]] (internationale) * [[https://www.euroscipy.org/|Conférences EuroScipy]] (européenne) * [[http://www.euroscipy.org/conference/euroscipy2012|archives 2012]] ===== Ressources (codes sources, tutoriels, documentation, livres ...) ===== * [[http://wiki.python.org/moin/|Wiki officiel]] sur python.org * [[http://www.python.org/doc/FAQ.html|FAQ officielle]] sur python.org * [[http://perso.limsi.fr/pointal/python:memento|Python 3 Cheat Sheet]], Mémento Bases Python 3, de Laurent Pointal * [[http://perso.limsi.fr/pointal/python:abrege|Python 3.2 Reference Card]], Abrégé Dense Python 3.2 du même auteur (Laurent Pointal) * [[http://perso.limsi.fr/pointal/python:pqrc|Python Quick Reference Card]], la syntaxe et les règles, le tout sur 9 feuilles recto-verso en couleur ! Attention aux marges lors de l'impression ! Toujours du même auteur (Laurent Pointal) * [[https://www.datacamp.com/community/blog/python-matplotlib-cheat-sheet|DataCamp matplotlib cheat sheet]], et autres [[https://www.datacamp.com/community/data-science-cheatsheets|cheat sheets]] * [[https://github.com/gto76/python-cheatsheet|Comprehensive Python Cheatsheet]] * [[http://www.pythonfrance.com/|PythonFrance.com]] (nombreux codes sources disponibles, en français) * [[http://wikipython.flibuste.net/|Wiki Python FR]] avec de nombreuses informations pour débutant ou non, des exemples de code,... (en français) * [[http://software-carpentry.org/|Software Carpentry]], site principalement dédié à la programmation Python pour scientifiques * [[http://swaroopch.info/text/Byte_of_Python:Main_Page|A byte of Python]], un livre en ligne pour débuter (versions Python 2.x et Python 3), et sa [[http://www.swaroopch.com/notes/Python_fr:Table_des_Mati%C3%A8res|traduction en français]] * [[http://www.awaretek.com/tutorials.html|Python Tutorials]], une liste de plus de 300 documents !!! * [[http://www.livewires.org.uk/python/index.html|LiveWires Python]] Course ([[http://www.livewires.org.uk/python/pdfsheets.html|worksheets]]) and [[http://www.livewires.org.uk/python/lwpackage.html|package]] : comment créer simplement un jeu * [[http://www.onlamp.com/python/|ONLamp.com Python devcenter]], de O'Reilly * [[http://www.vex.net/parnassus/|Vaults of Parnassus]] : Python Resources * [[http://rgruet.free.fr/|Python Quick Reference]] by Richard Gruet * [[http://www.dalkescientific.com/writings/NBN/python_intro/|Python Basics]] par Andrew Dalke (Dalke Scientific Software) * [[https://pymotw.com/3/|Python 3 module of the week]] * [[http://effbot.org/|Effbot.org]], avec de nombreux articles et autres ressources sur Python * [[http://www.pasteur.fr/formation/infobio/python/index.html|Introduction to Programming using Python]] - Programming Course for Biologists at the Pasteur Institute * [[http://www.openbookproject.net/books/bpp4awd/index.html|Beginning Python Programming for Aspiring Web Developers]] (tutorial sous licence GNU Documentation) * [[http://python.physique.free.fr/index.html|FAQPython de Bordeaux 1]] * [[https://towardsdatascience.com/top-7-repositories-on-github-to-learn-python-44a3a7accb44|The Top 7 Best Github Repositories to Learn Python - Popular repositories to either learn the basics or develop mastery of Python]] Byron Dolon, Medium, aug 26, 2020 * [[https://github.com/jerry-git/learn-python3|GitHub - jerry-git/learn-python3: Jupyter notebooks for teaching/learning Python 3]] * [[https://github.com/trekhleb/learn-python|GitHub - trekhleb/learn-python: 📚 Playground and cheatsheet for learning Python. Collection of Python scripts that are split by topics and contain code examples with explanations.]] * [[https://github.com/joaoventura/full-speed-python|GitHub - joaoventura/full-speed-python: Full Speed Python: a book for self-learners]] * [[https://github.com/rasbt/python_reference|GitHub - rasbt/python_reference: Useful functions, tutorials, and other Python-related things]] * [[https://github.com/zhiwehu/Python-programming-exercises|GitHub - zhiwehu/Python-programming-exercises: 100+ Python challenging programming exercises]] * [[https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day%203.md|100-plus-Python-programming-exercises-extended/Day 3.md at master · darkprinx/100-plus-Python-programming-exercises-extended · GitHub]] * [[https://github.com/MTrajK/coding-problems|GitHub - MTrajK/coding-problems: Solutions for various coding/algorithmic problems and many useful resources for learning algorithms and data structures]] * [[https://github.com/TheAlgorithms/Python|GitHub - TheAlgorithms/Python: All Algorithms implemented in Python]] * Listes de diffusion, forums,... * [[http://stackoverflow.com/questions/tagged/python|Stack Overflow, catégorie Python]] * [[http://groups.google.com/group/comp.lang.python/topics|Google Groups archive of comp.lang.python]] * [[https://groups.google.com/group/fr.comp.lang.python/topics|fr.comp.lang.python]] * [[http://www.python.org/community/sigs/current/edu-sig/|EDU-SIG]] : Python in Education (nombreux liens) * Exemples de code python * [[http://en.literateprograms.org/Category:Programming_language:Python|literateprograms.org]] : quelques dizaines de programmes simples commentés, en python * [[http://www.pypedia.com|Pypedia]] : codes sélectionnés et commentés * [[http://www.pythonforbeginners.com|Python for Beginners]] : codes élémentaires, exemples et tutoriels * [[http://www.java2s.com/Code/Python/CatalogPython.htm|java2s.com/Code/Python]] : nombreux petits codes catalogués, illustrés (mais peu expliqués) * [[http://code.activestate.com/recipes/langs/python/|Codes en Python du site ActiveState]] * voir la [[floss:python:activestateselection|sélection de codes sources ActiveState]] sur ce site * [[http://codes-sources.commentcamarche.net/source/list/python-19/last|Codes sources Python sur commentcamarche.net]] * [[http://nullege.com/|nullege]] : moteur de recherche de codes sources Python * [[https://trinket.io/|Trinket]] : écrire, exécuter, partager du code via un navigateur web * Pages de liens * [[http://perso.limsi.fr/pointal/liens:python_links|Liens Python]] de Laurent Pointal * Périodiques Python : * [[http://www.pythonrag.org/]] * Python magazine : [[http://pymag.phparch.com/]] * Python papers anthology : [[http://pythonpapers.org/]] * [[http://radiofreepython.com/|radio free python]] : podcasts de diffusion libre sur le langage de programmation Python et sa communauté * [[http://www.python-fr.org/|Python-FR.org]] : liens (en français) * [[http://www.p3b.org/|Python blanc bleu belge]] : association dont le but est de faire découvrir le langage Python et la plate-forme de développement Zope en Francophonie * Société de service Python assurant formation et consultance : * [[http://www.python-academy.com/|Python Academy]] * Articles de Linux Magazine ou Linux Pratique ou Linux Essential (Editions Diamond), sur le site [[http://www.unixgarden.com|UnixGarden]] * [[http://www.unixgarden.com/index.php/gnu-linux-magazine/devenez-pythonisse|Devenez Pythonisse, Christophe Buffenoir]] * [[http://www.unixgarden.com/index.php/gnu-linux-magazine/courriel-et-html-avec-python|Courriel et HTML avec Python, Christophe Buffenoir]] * [[http://www.unixgarden.com/index.php/gnu-linux-magazine/bien-demarrer-avec-python|Bien démarrer avec Python]] * [[http://www.unixgarden.com/index.php/gnu-linux-magazine/python-et-le-c|Python et le C, Vincent Bernat]] * [[http://issuu.com/wile/docs/article_lebigot|Apprenez d'abord Python ! par Eric Le Bigot]] * [[http://www.unixgarden.com/index.php/gnu-linux-magazine-hs/python-et-le-reseau|Python et le réseau, Vincent Bernat]] * [[http://www.unixgarden.com/index.php/gnu-linux-magazine-hs/python-comme-langage-scientifique|Python comme langage scientifique, Gaël Varoquaux]] * Numéros spéciaux de magazines, consacrés à Python * [[http://www.unixgarden.com/index.php/sommaire/gnulinux-magazine-hs-n-40-janvierfevrier-2009-chez-votre-marchand-de-journaux|GNU/Linux Magazine HS N°40 – Janvier/Février 2009]] * [[http://www.ed-diamond.com/produit.php?ref=lmhs49|GNU/Linux Magazine HS 49. Code, Applicatifs, Projets, ... Incontournable Python !]] * [[http://www.ed-diamond.com/produit.php?ref=lmhs53|GNU/Linux Magazine HS 53. Initiation à python ]] * [[http://www.ed-diamond.com/produit.php?ref=lphs23|Linux Pratique HS 23. La programmation avec Python]] * [[http://boutique.ed-diamond.com/gnulinux-magazine-hors-series/477-lmhs65.html|GNU/Linux Magazine HS 65. Python avancé : Vous n'avez pas encore exploité tout son potentiel !]] * [[http://boutique.ed-diamond.com/gnulinux-magazine-hors-series/597-gnulinux-magazine-hs-73.html|GNU/Linux Magazine HS 73, LE GUIDE POUR DEVENIR UN VÉRITABLE EXPERT DU LANGAGE !]] (Modules généraux - Visualisation des données - Modules spécifiques - Accélération des traitements) * [[http://zetcode.com/]] avec quelques tutoriels Python, incluant des utilisations de librairies * Articles sur Python dans le magazine [[http://fullcirclemagazine.org/|Full Circle]] : * [[http://fullcirclemagazine.org/python-special-edition-1/]] - Python Special Edition 01, reprint of Parts 01 – 08 * [[http://fullcirclemagazine.org/python-special-edition-2/]] - Python Special Edition 02, reprint of Parts 09 – 16 * [[http://fullcirclemagazine.org/2012/01/21/python-special-edition-volume-03/]] - Python Special Edition 03, reprint of Parts 17 – 21 * [[http://fullcirclemagazine.org/2012/04/13/python-special-edition-volume-04/]] - Python Special Edition 03, reprint of Parts 22 – 26 * Podcast Python : * [[http://pythonpodcast.com/|Podcast.__init]]_ A podcast about Python and the people who make it great ==== Code & qualité ==== * http://www.python.org/dev/peps/pep-0008/ Conventions de style pour l'écriture de programmes (connues aussi comme pep8 !) * [[https://en.wikipedia.org/wiki/Code_review|code review]] * ... * [[https://www.pylint.org/|Pylint]], outil permettant d'analyser la qualité d'écriture d'un code Python * [[http://pychecker.sourceforge.net/|PyChecker]], outil permettant de déceler les bugs dans un code Python * Testing * Documentation * [[http://www.sphinx-doc.org/en/stable/|sphinx]] * [[http://legacy.python.org/dev/peps/pep-0257/|pep257 docstring convention]] * [[https://dzone.com/articles/8-ways-to-become-a-better-coder|8 Ways to Become a Better Coder]] ===== Applications générales en Science ===== * [[http://ipython.org/|IPython]] : environnement de calculs interactifs en Python * [[http://www.sagemath.org/|Sage]], logiciel mathématique libre combinant de nombreux composants open-source dans un interface basé sur Python * [[http://sagebook.gforge.inria.fr/|Calcul mathématique avec Sage]], livre sous licence libre * [[http://packages.python.org/spyder/|spyder]] : environnement de développement scientifique * Librairies * [[http://matplotlib.sourceforge.net/|matplotlib]] librairie graphique scientifique, exemples (fichier .zip), tutorial,... * [[http://matplotlib.sourceforge.net/basemap/doc/html/index.html|Basemap]] : librairie de création de cartes 2D * [[http://www.loria.fr/~rougier/teaching/matplotlib/|Matplotlib tutorial by Nicolas P. Rougier - EuroSciPy 2012]] * [[http://olgabot.github.io/prettyplotlib/|prettyplotlib]], améliorations visuelles de matplotlib * [[http://stanford.edu/~mwaskom/software/seaborn/index.html|Seaborn]], librairie de visualisation basée sur Matplotlib * [[http://jakevdp.github.io/mpl_tutorial/index.html|Tutoriel et exemples]] * [[http://pyx.sourceforge.net/|PyX]] : pour générer des graphiques imprimables au format eps ou pdf * [[http://numpy.scipy.org/|NumPy]] : librairie numérique fondamentale. Pour la documentation récente, voir le site du [[http://www.tramy.us/guidetoscipy.html|Guide to Numpy]] (lien pdf). * [[http://code.google.com/p/glumpy/|Glumpy]] = OpenGL + NumPy : visualisation rapide de tableaux NumPy * [[http://www.scipy.org/|SciPy]] (voir aussi les exemples présentés à la page [[http://www.scipy.org/Cookbook]]). Voir aussi les [[http://scipy-lectures.github.com/index.html|Python Scientific Lecture Notes]] * [[http://deeplearning.net/software/theano/index.html|Theano]], librairie pour définir, optimiser et évaluer efficacement des expressions mathématiques impliquant des tableaux multi-dimensionnels * [[http://gnuplot-py.sourceforge.net/|Gnuplot.py]] : librairie permettant l'utilisation de [[http://www.gnuplot.info/|gnuplot]]. Numpy, scipy doivent être installés auparavant. * [[http://www.ni.gsu.edu/~rclewley/PyDSTool/index.html|PyDSTool]] pour l'étude de systèmes dynamiques * [[https://github.com/yhat/ggplot|ggplot]], port Python de [[http://ggplot2.org/|gglplot2]], un moteur de graphiques pour [[http://www.r-project.org/|R]] * [[https://towardsdatascience.com/how-to-use-ggplot2-in-python-74ab8adec129|How to Use ggplot2 in Python]] (librairie plotnine) * [[http://plotnine.org/gallery/|plotnine - A Grammar of Graphics for Python]] * [[https://github.com/has2k1/plotnine|has2k1/plotnine: A Grammar of Graphics for Python]] (GitHub) * pylab interface to matplotlib ? * [[http://www.vni.com/products/imsl/pyimsl/overview.php|PyIMSL]] : permet d'accéder aux algorithmes mathématiques et statistiques de la librairie numérique IMSL C. * [[http://code.google.com/p/pyminuit/|PyMinuit]] : minimisations de fonctions avec Minuit * Librairies de machine learning * [[http://scikit-learn.org/stable/|Scikit-learn]] * [[http://pybrain.org/|Pybrain]] * [[http://mlpy.sourceforge.net/|mlpy]] * [[https://pypi.python.org/pypi/MDP/2.4|mdp]] * Algèbre tensorielle : * [[https://code.google.com/p/pytensor/|pytensor]] + [[http://repository.cmu.edu/compsci/1059/|documentation en pdf]] * Statistiques * [[http://scikits.appspot.com/statsmodels|scikits.statsmodels]] : outils statistiques complémentaires à scipy * [[http://pandas.pydata.org/|Pandas]], Python Data Analysis Library * [[http://blog.lambdafoundry.com/tutorial-data-analysis-in-python-with-pandas-at-pycon-2012/|Tutorial video at PyCon 2012]] * [[https://bitbucket.org/hrojas/learn-pandas|learn pandas]], leçons au format ipynb (IPython Notebook) * [[http://www.datadependence.com/2016/05/scientific-python-pandas/|An Introduction to Scientific Python – Pandas]] * Outils statistiques : consulter les pages [[http://code.google.com/p/python-statlib/|statlib]], [[http://www.astro.cornell.edu/staff/loredo/statpy/|statpy]], * Références spécifiques concernant [[r_python|R et Python]] * [[http://scikits.appspot.com/bootstrap|Bootstrapped confidence intervals]] * [[http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ranksums.html|MWW RankSum test]] * [[http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.f_oneway.html|ANOVA]] * [[https://github.com/pymc-devs/pymc|PyMC]], librairie pour l'analyse Bayésienne. //Cf.// le livre interactif [[https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers|"Bayesian Methods for Hackers"]] * [[http://orange.biolab.si/|Orange]], data mining * [[http://networkx.github.io/|NetworkX]], grands réseaux * [[http://tulip.labri.fr/TulipDrupal/|Tulip]] visualisations de grands graphes * Grands volumes de données, ou nombre de fichiers, tables,... * [[http://code.google.com/p/h5py/|hierarchical data format hdf5]] * [[http://www.pytables.org/|PyTables]] * [[http://root.cern.ch|ROOT]] CERN data processing framework (including Python stuff) * [[http://pypi.python.org/pypi/pytc|Tokyo Cabinet]] * [[https://github.com/reubano/meza|Meza, a Python toolkit for processing tabular data]] * [[http://sympy.org/en/index.html|SymPy]] : librairie en mathématique symbolique * [[https://mathics.org|Mathics]], free, light-weight alternative to Mathematica * Images : * [[http://www.pythonware.com/products/pil/|PIL]] : Python Imaging Library et la [[http://effbot.org/imagingbook/|documentation sur effbot]] * [[http://francoislouislaillier.developpez.com/Python/Tutoriel/InitiationNumpy/Tuto1/|Tutoriel en français]] sur des bases de traitement d'images avec PIL et numpy * [[http://python-imaging.github.io/|Pillow]], un fork pour le remplacement et l'évolution de PIL * [[http://scikit-image.org/|scikit-image]] : collection d'algorithmes en Python pour le traitement d'images * [[http://scikit-image.org/docs/dev/auto_examples/|Galerie de Scikit-image]] * [[https://peerj.com/preprints/336.pdf|Preprint publié sur PeerJ à propos de scikit image]] * [[http://scikit-learn.org/stable/|scikits-learn]] : module d'algorithmes classiques d'apprentissage automatique * [[http://code.google.com/p/imagescanner/wiki/GettingStarted|imagescanner]] * [[http://opencv.org/|OpenCV]] : Open Source Computer Vision * [[http://www.simplecv.org/|SimpleCV]] : interface simplifié à OpenCV : "computer vision made easy" * [[https://github.com/ojii/pymaging|pymaging]] (pure python) * GlowScript : [[https://www.glowscript.org/|glowscript.org]] reprend les objectifs de [[http://www.vpython.org/|Vpython]], (sous Python 3), permet la programmation d'animations 3D simples (balles, rebonds, graphes,...). * [[https://rjallain.medium.com/a-physicists-guide-to-functions-in-python-9aec73cc4dcb|A Physicist’s Guide to Functions in Python]], Rhett Allain, Medium, 17/12/2020 * [[https://rjallain.medium.com/examples-of-stokes-theorem-and-the-divergence-theorem-using-python-2f4be23b81d4|Examples of Stoke’s Theorem and the Divergence Theorem Using Python]] Rhett Allain, Medium, 01/03/2022 * [[http://www.visualrelativity.com/vpython/|VPython applications for Teaching Physics]] * [[http://spe.num.edu.mn/altankhuu/web2/vpython.html|Visual Python demos]] (ne fonctionnent pas toutes) * [[http://new.math.uiuc.edu/math198/repo/illipython/stanblank/pyopengl/collision.py|collision.py]] et répertoires parents * [[http://code.google.com/p/visvis/|Visvis]] : approche orientée objet de la visualisation * [[http://www.pyzo.org|Pyzo]] : environnement d'analyse de données et de visualisation * [[http://www.petercollingridge.co.uk/pygame-physics-simulation|Pygame physics simulation]] * graphiques interactifs * [[http://code.enthought.com/projects/chaco/|Chaco]] : librairie pour des graphiques interactifs * [[http://pygal.org/|Pygal]] : librairie de graphiques dynamiques en SVG. Testable en ligne via [[http://cabaret.pygal.org/|Pygal cabaret]] * [[http://bokeh.pydata.org|Bokeh]], librairie de visualisations interactives dans des navigateurs * [[https://blog.modeanalytics.com/python-data-visualization-libraries/|10 Useful Python Data Visualization Libraries for Any Discipline]] * [[http://www.euroscipy.org/|Euroscipy]] : Conférence annuelle européenne pour les scientifiques utilisant Python * [[http://numfocus.org/|numfocus.org]] : promotion de l'enseignement et de l'utilisation de logiciels libres en science (support fortement orienté sur des projets autour de Python) ===== Applications en Chimie ===== * [[http://dirac.cnrs-orleans.fr/MMTK/|MMTK]], molecular modeling toolkit ([[http://sourcesup.cru.fr/frs/download.php/631/MMTK-2.4.4.win32-py2.3.exe|version Windows]] - attendre version pour python 2.4 ??) * PyDayLight * Python est utilisé dans [[http://www.ks.uiuc.edu/Research/vmd/|VMD]] (visual molecular dynamics) * [[http://mgltools.scripps.edu/|MGLTools]] : incluant PMV, Python-Based Molecular Viewing environment (+ [[http://www.scripps.edu/~sanner/]] : ancienne page) * [[http://www.cgl.ucsf.edu/chimera/|Chimera]], a highly extensible, interactive molecular graphics program * [[http://pymmlib.sourceforge.net/|Python Macromolecular Library]] (mmLib), pour la manipulation de modèles structuraux de macromolécules * [[http://pyquante.sourceforge.net/|PyQuante]] : suite de programmes pour la chimie quantique (Linux ou Windows/CygWin) * Accéder à [[http://openbabel.sourceforge.net|Open Babel]] (boîte à outils de données chimiques) avec Python, [[http://openbabel.sourceforge.net/wiki/Python#Pybel|Pybel]] * [[http://dirac.cnrs-orleans.fr/programs/nMOLDYN/|nMOLDYN]] (analyse de données de simulations de dynamique moléculaire), utilisant MMTK * [[http://frowns.sourceforge.net/|Frowns]], chemoinformatics system * [[http://cctbx.sourceforge.net/|CCTBX]], Computational Crystallography Toolbox : classes C liées par du code Python * [[http://bkchem.zirael.org|BKChem]], programme de dessin de molécules, supportant le format IUPAS [[http://www.iupac.org/inchi/|InChI]] * Sites actuels : [[https://gitorious.org/bkchem]] & [[https://gitorious.org/oasa]] * [[http://pages.physics.cornell.edu/sethna/teaching/ComputationalMethods/|Computational Methods for Nonlinear Systems]], cours de Sethna & Myers * [[http://www.ascend4.org/|ASCEND]] is a modelling environment and solver for large or small systems of non-linear equations, for use in engineering, thermodynamics, chemistry, physics, mathematics and biology * [[http://www.kdau.com/projects/gelemental/|gElemental]], tableau périodique sous GNOME (Linux) * [[http://www.ks.uiuc.edu/Research/namd/|MDAnalysis]], outils pour l'analyse de trajectoires issues de programmes de dynamique moléculaire comme [[http://www.charmm.org|CHARMM]], NAMD et [[http://lammps.sandia.gov/|LAMMPS]] * [[http://www.eyesopen.com/docs/toolkits/current/html/OEChem_TK-python/|OEChem Toolkit]] * [[http://sourceforge.net/projects/pymol/|PyMOL Molecular Graphics System]] (OpenSource), + [[http://www.pymol.org/|offres commerciales]], [[http://pymol.org/educational/|version Educational-Use-Only PyMOL]] * [[http://www.pymolwiki.org/index.php/TOPTOC|pymolwiki]], guide pour installer et utiliser pymol * [[https://github.com/jensengroup/fragbuilder/|FragBuilder]], structure de peptides par chimie quantique. Cf. [[https://peerj.com/articles/277/|cet article]] * [[http://www.csse.monash.edu.au/~berndm/inchman/|GPGMP]], Inchman, implementation of a spatially-resolved stochastic simulation algorithm on general-purpose graphics processing units + [[http://www.csse.monash.edu.au/~berndm/inchman/html/|exemples chimiques]] * [[https://wiki.fysik.dtu.dk/ase/index.html|ASE]], Atomistic Simulation Environment * [[https://wiki.fysik.dtu.dk/gpaw/index.html|GPAW]], code de fonctionnelle densité basé sur ASE * [[http://gilgamesh.cheme.cmu.edu/doc/software/jacapo/index.html|Jacapo]] * Python et [[http://www.gromacs.org/|Gromacs]] (package to perform molecular dynamics) : * [[https://github.com/orbeckst/GromacsWrapper]] * [[https://code.google.com/p/pmx/]] * [[https://code.google.com/p/mdanalysis/wiki/WrappingGromacsInPython]] * [[http://sbcb.bioch.ox.ac.uk/users/oliver/software/GromacsWrapper/html/]] * [[http://cantera.github.io/docs/sphinx/html/index.html|Cantera]] : cinétique, thermodynamique, phénomènes de transport (scriptable en python) * [[http://pythonhosted.org/pyEQL/|pyEQL]], librairie pour gérer des solutions aqueuses d'électrolytes * [[https://pypi.python.org/pypi/chemlab|chemlab]], librairies incluant la visualisation et la manipulation de données sur les structures chimiques * [[https://pypi.python.org/pypi/chempy/|chempy]], librairie pour résoudre des problèmes de chimie physique, chimie analytique,... * [[http://www.rdkit.org/docs/index.html|RDKit]], Open source toolkit for cheminformatics, avec commandes en Python * [[https://github.com/awbirdsall/popmodel|popmodel]], to calculate population of molecules using a master equation * [[https://github.com/mcocdawc/chemcoord|chemcoord]], python module for coordinates of molecules * [[https://github.com/mcs07/PubChemPy|PubChemPy]], allows chemical searches and more in [[http://pubchem.ncbi.nlm.nih.gov/search/|PubChem]] database * [[http://www.uniprot.org/help/uniprotkb|Uniprot]], base de données sur les protéines * [[http://biopython.org|Biopython]] permet de lire ([[http://www.python-simple.com/python-biopython/Lecture-ecriture-sequences.php|ref]] des séquences de [[http://www.ncbi.nlm.nih.gov/genbank/|GenBank]] * [[https://github.com/mcs07/ChemSpiPy|ChemSpiPy]] pour accéder à la base de donnée [[http://www.chemspider.com/|ChemSpider]] * [[https://github.com/chembl/chembl_webresource_client|chembl_webresource_client]], pour accéder à la base de donnée chimique[[https://www.ebi.ac.uk/chembl/|ChEMBL]] * [[https://github.com/mcs07/PubChemPy|PubChemPy]], to interact with PubChem in Python * [[https://git.durrantlab.com/jdurrant/scoria|Scoria]], a lightweight python code base designed for importing, manipulating, and exporting molecular models. cf. [[https://jcheminf.springeropen.com/articles/10.1186/s13321-017-0237-8|Scoria: a Python module for manipulating 3D molecular data]] * librairie [[https://mendeleev.readthedocs.io/en/stable/|Mendeleev]] : données sur les éléments chimiques * cf. aussi [[http://lukaszmentel.com/blog/awesome-python-chemistry/|Awesome Python Chemistry]], Łukasz Mentel (aussi [[https://github.com/lmmentel/awesome-python-chemistry|ici]]) * [[https://mendeleev.herokuapp.com/|Mendeleev]], tableau périodique * [[https://dpotoyan.github.io/Chem324/intro.html|Chem324, Fall 2019 @ Iowa State University]] “Introduction to Quantum Mechanics” écrit en Jupyter + Markdown + Jupyter Book + Python codes ===== Autres applications spécifiques en Science ===== * [[http://pyode.sourceforge.net/|PyODE]] * [[http://www.pyngl.ucar.edu/|PyNGL]], un interface pour créer des graphes 2D. * [[http://mayavi.sf.net/|MayaVi]] et MayaVi2 : visualisation de données 2D/3D * [[http://public.kitware.com/VTK/|VTK]], Vizualisation ToolKit, pour du graphisme 3D. Voir [[http://www.imaging.robarts.ca/~dgobbi/vtk/vtkpython.html|ici]] pour des utilisations de VTKPython * Articles Python for scientific use([[http://linuxgazette.net/114/andreasen.html|part I]] et [[http://ftp.traduc.org/doc-vf/gazette-linux/html/2005/114/lg114-A.html|traduction française]], [[http://linuxgazette.net/115/andreasen.html|part II]] et [[http://ftp.traduc.org/doc-vf/gazette-linux/html/2005/115/lg115-A.html|traduction française]]) * [[http://biopython.org/|Biopython]] (computational molecular biology) * [[http://kineticskit.sourceforge.net/|KineticsKit]] : simulations 3D de systèmes masses-ressorts (décompresser l'archive dans le répertoire contenant les programmes à exécuter) * [[http://www.pasteur.fr/recherche/unites/sis/formation/python/|Python course in Bioinformatics]] * [[http://www.dalkescientific.com/writings/NBN/|Python programming for BioInformatics]] * [[http://pyvisa.sourceforge.net/|PyVISA]], interfaçage d'instruments scientifiques * [[http://maverick.inria.fr/Membres/Xavier.Decoret/resources/scipres/wiki/index.php/Main_Page|Presentation made easy SciPres]] : Scientific Presentation made easy * [[http://lurbano-5.memphis.edu/GeoMod/index.php/Main_Page|GeoMod]] : nombreux exemples didactiques en sciences de la terre * [[http://www.bioimagexd.net/|BioImageXD]] : free open source software for analysis and visualization of multidimensional biomedical images * [[http://www.alcyone.com/software/cage/index.html|CAGE]] : cellular automata simulation engine * [[http://projects.scipy.org/astropy/astrolib/|Astrolib]] : librairie d'outils pour l'astronomie * [[http://simpy.sourceforge.net/|SimPy]] : simulation in Python * [[http://pysces.sourceforge.net/|PySces]] : simulation de systèmes cellulaires (métabolismes) * [[http://blog.analogmachine.org/2011/05/13/symbolic-mca/|symca]] : simulation symbolique avec PySces * [[http://stompy.sourceforge.net/|Modelisation stochastique avec PySces]] * [[http://f-a-m-e.org|the Flux Analysis and Modeling Environment]] * Graphes : * [[http://projects.skewed.de/graph-tool/|manipulation et analyse statistique des graphes]] * [[http://networkx.lanl.gov/index.html|NetworkX]] * [[http://www.cs.rhul.ac.uk/home/tamas/development/igraph/tutorial/tutorial.html|igraph]] : construit et dessine des graphes (utilise PyCairo) * [[http://code.google.com/p/python-graph/|Python-graph]] : axé sur la réprésentation * [[http://www.graphviz.org/|Graphviz]], seulement pour la visualisation * [[https://github.com/mapio/GraphvizAnim|GraphvizAnim]], visualisations animées de graphes * [[http://scipy-central.org/|SciPy Central]] : bouts de code, modules et liens pour résoudre des problèmes scientifiques avec SciPy et d'autres outils liés à Python * [[http://code.google.com/p/pyms/|PyMS]] : outils de lecture-conversion de données spectrométriques (incluant JCAMP-DX) * [[http://www.astropy.org/|Astropy]], librairie pour l'astronomie * Particle tracking : * [[http://people.umass.edu/kilfoil/downloads.html|Mechanics of the Cell]] (Maria Kilfoil, Amherst) * [[https://github.com/soft-matter/trackpy|trackpy]] * [[http://tacaswell.github.io/tracking/html/|Particle Identification and Tracking, de Thomas A Caswell]] * [[http://www.ctcms.nist.gov/fipy/|FiPy]], résolution d'équation aux dérivées partielles pour des problèmes de diffusion, convection,... * [[https://pythonhosted.org/DendroPy/|DendroPy]], librairie de phylogénétique * [[https://github.com/AlexSafatli/Pylogeny|Pylogeny]], open-source Python framework for phylogenetic tree reconstruction and search space heuristics ===== Autres applications, librairies générales ===== * [[http://nojhan.free.fr/article.php3?id_article=22|iMailer]], pour envoyer des emails individuels avec pièces jointes * [[http://www.pygame.org|Pygame]], pour créer des jeux en Python * [[http://www.indiedb.com/games/blarg|Blarg, un jeu en PyGame au code source commenté]] * [[http://thepythongamebook.com/fr:start|The Python Game Book (Le Livre du Jeu en Python)]] * [[http://www.pymedia.org/|Pymedia]], pour gérer des fichiers audio et video * [[http://www.netpromi.com/kirbybase_python.html|KirbyBase]], système simple de gestion de base de données, stockant les données dans des fichiers texte ([[http://quentel.python-hosting.com/kirbybasepythonmanual_fr.html|lien]] vers un manuel en français). * [[http://www.reportlab.org/python_point.html|PythonPoint]], pour créer des présentations au format PDF * [[http://pyparsing.wikispaces.com/|PyParsing]], utilisant des grammaires, mots, lexiques... * [[http://pygments.org|Pygments]] : syntaxe colorée en Python * Documentation : * [[http://sphinx.pocoo.org/|Sphynx]] : génération de documentation en python * [[http://docutils.sourceforge.net/docs/user/tools.html|Outils Docutils]] (reStructuredText vers html, s5, XML, LaTeX, ODT) * [[http://freewisdom.org/projects/python-markdown/|Mardown & Python]] et [[https://github.com/trentm/python-markdown2|markdown2, une version améliorée]] * [[http://cython.org/|Cython]] : langage pour écrire facilement des extensions en C du langage Python * Python et la [[http://www.cairographics.org/|librairie graphique 2D Cairo]] * [[http://www.tortall.net/mu/wiki/CairoTutorial|Cairo Tutorial for Python Programmers]] et la traduction en français sur ce site : [[floss:python:cairo-tutoriel|Tutoriel Cairo pour programmeurs Python]] ! * [[http://www.cairographics.org/manual/]] * [[http://www.cairographics.org/pycairo/|pycairo]] et les [[http://www.cairographics.org/pycairo/resources/|ressources]] * [[https://github.com/Zulko/gizeh|Gizeh]] (Cairo for tourists) et [[http://zulko.github.io/moviepy/|MoviePy]] permettent de générer des animations en graphisme vectoriel. //Cf.// [[http://zulko.github.io/blog/2014/09/20/vector-animations-with-python/|ici]] * [[http://www.lfd.uci.edu/~gohlke/pythonlibs|Unofficial Windows Binaries for Python Extension Packages]], par Christoph Gohlke * [[http://pypi.python.org/pypi/landslide|Landslide]] : Lightweight markup language-based html5 slideshow (presentation) generator * [[http://www.brython.info/|Brython]], une implémentation de Python 3 pour la programmation web côté client. Pour remplacer du javascript. * Inclus une [[http://www.brython.info/tests/console.html|console]] permettant le test interactif de code Python 3. * [[http://pysensors.readthedocs.org/en/latest/|PySensors]] lecture de senseurs de l'ordinateur (temperature CPU, control fan,...) * Web scrapping, extraction de pages web * [[http://scrapy.org/|Scrapy]] : outils pour parcourir, lire des pages et extraire des données structurées de sites web * [[http://docs.python-requests.org|requests]], [[http://wwwsearch.sourceforge.net/mechanize/|Mechanize]] et/ou [[http://selenium-python.readthedocs.io/installation.html|selenium]], en conjonction avec [[https://www.crummy.com/software/BeautifulSoup/bs4/doc/Beautiful soup]]. //Cf.// [[https://realpython.com/blog/python/python-web-scraping-practical-introduction/|ref1]], [[https://towardsdatascience.com/data-analytics-with-python-by-web-scraping-illustration-with-cia-world-factbook-abbdaa687a84|ref2]], [[https://medium.freecodecamp.org/better-web-scraping-in-python-with-selenium-beautiful-soup-and-pandas-d6390592e251|ref3]], [[https://hackernoon.com/web-scraping-tutorial-with-python-tips-and-tricks-db070e70e071|ref4]] * [[https://github.com/matteo-ronchetti/raschietto|Raschietto]] * références diverses : [[http://blog.adnansiddiqi.me/5-strategies-to-write-unblock-able-web-scrapers-in-python/|ref1]] ===== Graphical User Interfaces ===== cf. * [[http://wiki.python.org/moin/GuiProgramming]] * [[https://betterprogramming.pub/7-must-try-gui-libraries-in-python-34c8f6266363|7 Must-Try GUI Libraries in Python]] Abhay Parashar, Medium, Apr, 2021, Better Programming * [[https://www.freecodecamp.org/news/python-gui-development-using-pyside6-and-qt/|Python GUI Development Using PySide6 and Qt]] FreeCodeCamp, Beau Carnes, 07/12/2022, tutorial * TKinter (pour mémoire, car inclu dans la distribution standard de Python) * [[http://infohost.nmt.edu/tcc/help/pubs/tkinter/|Tkinter reference: a GUI for Python]] (online or pdf) by John W. Shipman) * [[http://www.pythonware.com/library/tkinter/introduction/index.htm|An Introduction to Tkinter, de Fredrik Lundh]] (tutoriel Tk) * [[http://effbot.org/tkinterbook/|An Introduction to Tkinter, sur effbot.org]] * [[http://pmw.sourceforge.net/|Python megawidgets]], nombreuses extensions de Tkinter (à télécharger et installer) * [[http://www.python-course.eu/python_tkinter.php|Tkinter tutorial]], sur python-course.eu * wx * [[http://wxpython.org/|wxPython]], pour créer des programmes avec un interface graphique * [[http://boa-constructor.sourceforge.net/|BOA Constructor]], pour construire des interfaces wx * Qt : * [[http://wiki.python.org/moin/PyQt]] * [[http://pythonqt.sourceforge.net/]] * [[http://www.pyside.org/]] * GTK+ * [[http://www.pygtk.org/]] * [[http://glade.gnome.org/|Glade]], pour créer des interfaces utilisateurs utilisant GTK+ * DearPyGui → "Dear PyGui is a simple and powerful easy to use Python GUI framework to build GUIs using python scripts" * [[https://medium.com/datadriveninvestor/create-quick-and-powerful-guis-using-dear-pygui-in-python-713cc138bf5a|Create Quick and Powerful GUIs Using “Dear PyGui” in Python]] * Curses (text only ?) * [[http://docs.python.org/dev/howto/curses.html]] * [[http://inaps.org/articles/developpement/curses-python]] * Interfaces simplifiés : * [[https://pysimplegui.readthedocs.io/en/latest/]] + PySimpleGUIWeb * [[https://levelup.gitconnected.com/uis-in-python-with-pysimplegui-e5cd8ea275e8|UIs in Python with PySimpleGUI - Is this the one?]] Keno Leon, Medium, Dec 18, 2020 * http * [[https://github.com/dddomodossola/remi|Python REMote Interface library]] (cf. PySimpleGUIWeb) ===== Python & web ===== * [[https://anaconda.cloud/pyscript-python-in-the-browser|PyScript]] : Python in the browser * [[https://towardsdatascience.com/pyscript-python-in-the-browser-aadaf8960a80|PyScript: Python in the browser. Are you a data scientist or a developer…]] by Sophia Yang, May, 2022, Towards Data Science * [[https://towardsdatascience.com/pyscript-unleash-the-power-of-python-in-your-browser-6e0123c6dc3f|PyScript — unleash the power of Python in your browser]], A sneak peek at how to run Python from HTML code * [[https://towardsdatascience.com/introducing-pyscript-how-to-run-python-in-your-browser-8d838bb12224|Introducing PyScript — How to Run Python in Your Browser - Is Python the new JavaScript now? Well, no, but you can still do cool things]] Dario Radečić, towardsdatascience.com, 04/05/2022 * [[https://medium.com/analytics-vidhya/pyscript-use-python-code-in-html-f7c8b49486a4|PyScript-Use Python Code in HTML]], E Senthil, Medium, 06/05/2022 * [[https://brython.info/|Brython]] : Une implémentation de Python 3 pour la programmation web côté client * [[https://anvil.works/]] Full stack web apps with nothing but Python ===== Librairies particulières ===== De manières générales, les librairies qui ne sont pas dans la version standard de Python seront placées (par des programmes de "setup" ou manuellement) dans le sous-répertoire .\Libsite-packages\ de Python. * [[http://cheeseshop.python.org/pypi|Python Cheese Shop]], un dépôt de librairies et programmes en Python * [[http://code.google.com/p/xturtle/|xturtle]], module graphique "tortue" destiné à remplacer la librairie standard turtle * [[http://pybrary.net/pyPdf/|PyPDF]], pour des manipulations en lecture et écriture de fichiers PDF * [[http://mstamy2.github.io/PyPDF2/|PyPDF2]] fork variante de PyPDF * [[http://www.reportlab.com/software/opensource/|ReportLab's Open Source Libraries]], pour créer des fichiers pdf * [[http://www.blog.pythonlibrary.org/2010/03/08/a-simple-step-by-step-reportlab-tutorial/|un tutoriel]] * [[http://www.lexicon.net/sjmachin/xlrd.htm|xlrd]], pour lire des données de feuilles Excel * Frameworks pour la création de sites web (//cf.// ce [[https://www.airpair.com/python/posts/django-flask-pyramid|comparatif]]) * [[http://www.djangoproject.com/|django]] (connu, puissant, suivi,...) * [[http://www.pylonsproject.org/|Pyramid]] * [[http://webpy.org/|web.py]] * [[http://flask.pocoo.org/|Flask]] : microframework (cf. [[https://codegeekk.wordpress.com/2015/01/28/creating-web-sites-using-python-and-flask/|cette video]]) * [[https://www.moyaproject.com/|Moya]] (exemple : [[http://www.willmcgugan.com/blog/tech/2015/6/28/build-a-database-driven-markdown-wiki-in-25-lines-of-code/|création d'un wiki]]) * [[http://eyed3.nicfit.net/|eyeD3]], librairie de gestion de tags ID3 de fichiers mp3 * [[http://www.pyxll.com/|pyxll]] : pour écrire des extensions de Microsoft Excel en Python (non-libre, gratuit pour des utilisations non-commerciales et soumis à une EULA) * [[http://kartograph.org/about/kartograph.py/|kartograph.py]] : générateur de carte SVG de haute qualité * [[http://www.python-camelot.com/|Camelot]] : pour construire des applications commerciales * [[http://pymt.eu/|PyMT]] : librairie pour des développements multitouch * Interface en ligne de commande : * [[http://docopt.org/|docopt]] (voir [[https://www.youtube.com/watch?v=pXhcPJK5cMc|cette vidéo]]) * [[http://docs.python.org/dev/library/argparse.html|argparse]] * [[http://www.crummy.com/software/BeautifulSoup/|Beautiful soup]] : parser de code html ou xml * [[http://pyeurocode.pagesperso-orange.fr/index.html|PyEurocode 2]] : bibliothèque de fonctions permettant d’effectuer des calculs de béton armé * Accès d'un wiki (mediawiki, comme wikipedia) : * [[https://github.com/alexz-enwp/wikitools|Wikitools]] (sous Python 2) * [[https://github.com/halfak/mediawiki-utilities|Mediawiki-utilities]] (sous Python 3) * [[https://timeboard.readthedocs.io/en/latest/index.html|Timeboard]], voir [[https://medium.com/@mmamaev2/introducing-timeboard-a-python-business-calendar-package-a2335898c697|ref1]] * Création de tables, yc vers LaTeX : * [[https://pypi.org/project/tabulate/|Tabulate]] * [[https://pypi.org/project/texttable/|Texttable]] * cf. aussi [[https://towardsdatascience.com/how-to-create-latex-tables-directly-from-python-code-5228c5cea09a|How to create Latex tables directly from Python code]] ===== Python Package Index (PyPI) : gestion,... ===== * [[https://towardsdatascience.com/the-starters-guide-to-release-your-python-package-in-pypi-efd72cbc0011|The Starters Guide to Release your Python Package in PyPi]], A step-by-step guide to effectively release your Python package in the Python Package Index (PyPI) to pip install it, Erdogan Taskesen, Medium, 14/42/2022 ===== Autres distributions ou programmes utiles, pour utilisateurs avertis, ou programmeurs ===== * [[http://www.activestate.com/Products/ActivePython/|ActivePython]] * [[http://www.voidspace.org.uk/python/movpy/|movpy]], Movable Python (version fonctionnant sur clé USB, payante) * [[http://www.jython.org/|Jython]], implémentation JAVA de Python * L'utilisation de Python à partir de la distribution "Linux Live DVD" de [[http://knoppix.org/|Knoppix]] permet d'écrire des programmes sans installer l'environnement complet de Python. * [[http://www.doxygen.org/index.html|Doxygen]], système de génération de documentation, fonctionnant en autre avec Python * Packaging : comment créer des paquets distribuables : * [[http://guide.python-distribute.org]] * [[http://www.aosabook.org/en/packaging.html|Python Packaging, by Tarek Ziadé]], from the books [[http://www.aosabook.org/en/index.html|The Architecture of Open Source Applications]] * [[https://mathspp.com/blog/how-to-create-a-python-package-in-2022|How to create a Python package in 2022]] * [[http://www.virtualenv.org|virtualenv]], un outil pour créer des environnements isolés, permettant d'utiliser des versions différentes de librairies. Trouvez des tutoriels [[http://stackoverflow.com/questions/5844869/comprehensive-beginners-virtualenv-tutorial|ici]], et aussi une [[http://blog.zoomeranalytics.com/pip-install-t/|alternative à virtualenv]]. ==== Python pour mobiles ==== * Android (smartphones ou tablettes) * [[https://play.google.com/store/apps/details?id=com.hipipal.qpyplus&hl=fr|QPython]] * [[http://qpython.org/questions/|QPython.org]] * [[http://qpython.com/index.html|QPython.com]] * [[http://google-opensource.blogspot.be/2009/06/introducing-android-scripting.html|Introducing Android Scripting Environment]] * iOS * [[http://pythonforios.com/|Python for iOS]] ==== Python et la sécurité ==== * [[https://www.cybrary.it/course/python/|Python for Security Professionals]], de [[https://www.cybrary.it/|Cybrary]] ===== Techniques particulières ===== * [[http://sahandsaba.com/combinatorial-generation-using-coroutines-in-python.html|Génération combinatoire via des coroutines]] * [[http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/|Tutorial To Implement k-Nearest Neighbors in Python From Scratch]] (analyse d'images et machine learning) * [[https://www.crumpington.com/blog/2014/10-19-high-performance-python-extensions-part-1.html|High Performance Python Extensions in C]], using NumPy's C API * [[http://lgiordani.com/blog/2014/10/14/decorators-and-metaclasses/|Advanced Use of Python Decorators and Metaclasses]] * [[http://linuxfr.org/news/pythran-0-6-compilation-de-noyaux-scientifiques-ecrits-en-python|Compilation de noyaux scientifiques écrits en Python, avec Pythran 0.6]] ===== Autres pages de liens sur Python ===== * [[http://www.limsi.fr/Individu/pointal/python.html|Page Python de Laurent Pointal]] * [[http://www.python-eggs.org/links.html]] * [[http://artyprog.freezope.org/Forum/Python/index_html|Python & Cie]] * [[http://pythonfacile.free.fr|Python facile]] ===== Exemples d'applications (libres) écrites en Python, ou utilisant Python, cookbook,... ===== * En chimie * [[http://www.lfd.uci.edu/~gohlke/vLFD/|Molecular mass calculator]] * [[http://www.mmass.org/|Outil pour la spectrométrie de masse]] * [[http://www.eyesopen.com/products/applications/vida-vivant.html|Vida-Vivant]] (openeye) : visualisation et communication de résultats de modélisation moléculaires * [[http://www.ballview.org/|BallView]] : modélisation moléculaire et visualisation * [[http://www.yasara.org/|Yasara]] : modélisation moléculaire et réalité virtuelle * [[http://www.slac.stanford.edu/grp/ek/hippodraw/|HippoDraw]], logiciel générant des graphiques de données, en particulier statistiques * [[http://www.zope.org/|Zope]] [[http://plone.org/|Plone]] : un environnement et un CMS ou "content management system" * [[http://www.skencil.org|Skencil]] : logiciel libre de dessin vectoriel * [[http://www.scintilla.org/SciTE.html|SciTE]], SCIntilla based Text Editor * [[http://juergen-riegel.net/FreeCAD/Docu/index.php/Main_Page|FreeCAD]], programme de computer aided design * Le site [[http://freshmeat.net|freshmeat.net]] répertorie de nombreux projets Python, listable à partir des menus Browse by - Programming Language - Python * [[http://pyscrabble.sourceforge.net/|PyScrabble]] : un jeu de Scrabble en ligne, multi-joueurs. * [[http://www.schoolsplay.org/|Childplay]] : jeux éducatifs * [[http://aspn.activestate.com/ASPN/Python/Cookbook/|Python Cookbook de ActiveState]], nombreux programmes Python * [[http://www.cfa.harvard.edu/~jbattat/computer/python/science/|Python based scientific analysis cookbook]], une dizaine de programmes numériques simples et utiles utilisant scipy/pylab/matplotlib * [[http://pybliographer.org/|Pybibliographer]] : outil de gestion de base de données bibliographiques * [[http://ankisrs.net/|Anki]] : programme de mémorisation sur le principe des "flashcards" (cartes mémoires) * [[http://grecipe-manager.sourceforge.net/|Gourmet Recipe Manager]] : base de données de recettes de cuisine * [[http://gramps-project.org/|GRAMPS]] : logiciel de généalogie * [[http://pascal.peter.free.fr/wiki/Logiciels/Pylote|Pylote]] : logiciel éducatif pour dessiner sur l’écran et y manipuler les instruments de géométrie. * Plusieurs outils de configuration, déploiement et gestion de parc informatique * [[http://ansible.github.com/|Ansible]] * [[http://bcfg2.org/|BCFG2]] * [[http://www.nico.schottelius.org/software/cdist/|cdist]] * [[http://saltstack.org/|Salt Stack]] (cf. aussi [[http://en.wikipedia.org/wiki/Salt_%28software%29|ce site]] * [[http://packages.python.org/APScheduler/|Advanced Python Scheduler]] : gestion temporelle de tâches en Python (permet d'être indépendant de cron) * [[http://indico-software.org/|Indico]] : logiciel intégré d'organisation de conférences + [[http://indico.readthedocs.org/en/latest/|documentation sur readthedocs.org]] * [[http://gnuradio.org/redmine/projects/gnuradio/wiki|gnuradio]] : outils logiciels pour créer des radios s'affranchissant de matériels non libres * [[http://sane-pygtk.sourceforge.net/|SANE-PyGTK]] : interface de scan minimaliste * [[http://calibre-ebook.com/|Calibre]] : gestion de livres électroniques (et papiers) * [[http://zim-wiki.org/|Zim]] : un wiki personnel * [[http://code.edx.org/|edX (Python & Ruby)]] : Education X, code du MOOC, ou Massively Open Online Courses (cours en ligne ouverts et massifs), créé par le Massachusetts Institute of Technology (MIT) et Harvard University. * [[http://sdaps.org/|SDAPS]] : optical mark recognition (OMR) program (en Python et LaTeX) * [[http://moinmo.in/MoinMoin|MoinMoin]] : wiki écrit en Python * [[http://photobatch.stani.be/index.html|Phatch]] : Photo batch processing, multiOS * [[https://www.openerp.com/|OpenERP]] et [[https://www.erp5.com/fr|ERP5]], deux [[http://fr.wikipedia.org/wiki/Progiciel_de_gestion_int%C3%A9gr%C3%A9|ERP]] opensource très réputés. * [[http://www.openplm.org|OpenPLM]], Une solution orientée produit et PLM (Product Lifecycle Management) * [[http://www.gnu.org/software/mailman/index.html|GNU Mailman]] : logiciel de gestion de listes de diffusion et de newsletters * [[http://www.makehuman.org/|MakeHuman]], pour fabriquer des modèles 3D hummains * [[http://www.openstack.org/|Openstack]], service d'infrastructure du domaine du cloud computing * [[https://www.djangoproject.com/|Django]], framework web MVC * [[http://openslides.org|OpenSlides]], logiciel en ligne de présentation et de planification de réunions * [[https://plot.ly/|Plotly]], site collaboratif d'analyse de données et de génération de graphiques * [[https://hubzero.org/|HUBzero]], plateforme pour créer des sites web dynamiques scientifiques et éducatifs (simulations,...), en relation avec l'outil [[https://nanohub.org/infrastructure/rappture/wiki|Rappture]] (**R**apid **app**lication infrastruc**ture**). Des API Python et exemples sont proposés via le site [[https://nanohub.org|nanoHUB]]. * [[http://www.reddit.com|Reddit]], un site de partage de liens (code open source) * [[http://www.pbs.org/|PBS]], Public Broadcasting Service ([[http://open.pbs.org|lien code source]]) * [[https://kallithea-scm.org/|Kallithea]], gestion de codes sources utilisant les systèmes de version git et mercurial * [[http://sugarlabs.org/index.php|Sugar labs]] : environnement d'apprentissage éducatif * Utilisez le langage de programmation [[http://www.processing.org/|Processing]] avec le [[https://github.com/jdf/processing.py|"mode Python"]] * [[https://code.google.com/p/pysensor/|pysensor]] application transmettant les données d'un accéléromètre d'un mobile * [[https://attic-backup.org/|Attic]], programme de backup avec deduplication * [[http://schooltool.org/|SchoolTool]], logiciel pour la gestion administrative d'écoles * [[http://www.jmodelica.org/|JModelica]], optimisation, simulation et analyse de systèmes dynamiques complexes, avec des possibilités de script en python * [[https://github.com/suizokukan/katal|Katal]], catalogue de fichiers (cf [[http://linuxfr.org/news/katal-catalogue-de-fichiers|ref1]]) * [[https://github.com/prodicus/spaceShooter|SpaceShooter]], retrogaming en pygame * [[http://jemdoc.jaboc.net/index.html|jemdoc]], light text-based markup language designed for creating websites * [[http://blog.getpelican.com/|Pelican]], générateur de site web statique * [[https://github.com/fguillot/markdown-newsletter|Markdown newsletter]] * [[https://amadeusitgroup.github.io/GraphDash/|GraphDash]], outil Python (Flask) permettant de construire une interface web à partir de graphes (licence Apache v2) * [[https://github.com/joowani/binarytree|BinaryTree: Python Library for Learning Binary Trees]] * [[https://github.com/Dorialexander/Pyllica|Pyllica]], série de programmes en python permettant de récupérer automatiquement des textes sur Gallica Applications très simples (pour étude) : * [[https://github.com/carlosmaniero/pygamii|pygamii]], jeu ascii ===== Exemples d'applications en recherche scientifique de Python ===== * Chimie * [[http://conference.scipy.org/scipy2010/slides/jan_meinke_protein_folding.pdf|Protein Folding with Python on Supercomputers]] ===== Logiciels permettant l'ajout de plugins écrit en Python ===== * [[http://icculus.org/referencer/|Referencer]] : logiciel de gestion de base de données bibliographiques * [[http://www.gimp.org/|GIMP]], logiciel de traitement d'images * [[http://wiki.gimp.org/index.php/Hacking:Plugins|Plugins sur le wiki de GIMP]] * [[http://www.gimp.org/docs/python/index.html|Documentation Python sur GIMP]] * [[http://gimpscripts.com/category/gimp-python-pug-ins/|plugins python sur gimpscript.com]] * [[http://olivierpons.fr/2011/08/24/gimp-scripting-et-python-fu-exemple-par-la-transformation-dune-image-png-en-image-transparente/]] * [[http://my.opera.com/CrazyTerabyte/blog/2011/03/07/writing-gimp-plugins-using-python]] * [[http://www.openoffice.org/|OpenOffice.org]], suite bureautique libre * [[http://gwyddion.net/|Gwyddion]], modular program for SPM (scanning probe microscopy) data visualization and analysis * [[http://www.blender.org|Blender]] : extensions et scripts en Python du logiciel libre de modélisation 3D animée * [[http://avogadro.openmolecules.net/wiki/Python_Extensions|Avogadro & plugins python]], éditeur/visualiseur de molécules, avancé et multiplateforme * [[http://jwork.org/scavis/|Scavis]], environnement java de calcul et visualisation, pouvant être commandé en python. * [[http://tulip.labri.fr/TulipDrupal/|Tulip]], visualisation de grands graphes * [[http://www.cgl.ucsf.edu/chimera/index.html|UCSF Chimera]], highly extensible program for interactive visualization and analysis of molecular structures and related data * [[http://onelab.info/wiki/ONELAB|ONELAB]], Open Numerical Engineering LABoratory (éléments finis), peut être utilisé par un client écrit en Python * [[http://www.paraview.org/|Paraview]], visualisation de données scientifiques ===== Blogs consacrés au moins partiellement à Python ===== * [[http://python4kids.wordpress.com/]] * [[http://love-python.blogspot.com/]] * [[http://blog.pythonisito.com/]] * [[http://www.anthoniraj.com/]] * [[http://www.leblogdefatiha.com]] * [[http://blog.wesmckinney.com/]] * [[http://www.voidspace.org.uk/]] * [[http://carlchenet.wordpress.com/category/python/]] * [[http://preshing.com/|Preshing on programming]], blog avec de nombreuses applications scientifiques (Penrose, Mandelbrot, distributions aléatoires,...) * [[http://blog.ouseful.info]], blog contenant notamment du code Python (et R) générant des graphes sur des données de réseaux sociaux (Twitter,...) * [[http://sebsauvage.net/python/]] : rubrique Python du blog de SebSauvage, avec notamment * [[http://sebsauvage.net/python/gui/index_fr.html|une comparaison des interfaces Tkinter et wxPython]] * [[http://sametmax.com/category/programmation/]] : rubrique programmation avec une grande partie sur Python * [[http://ianozsvald.com/]] avec par exemple un lien à un [[https://github.com/ianozsvald/Python6hrsTutorial|tutoriel en 6h]] * [[http://www.rotareeclub.com/|rotareeclub]] : applications en Python du framework django (matplotlib, rhéologie, ...) * [[http://notionalidentities.wordpress.com/category/python/|Notional Identities]] (liens) * [[http://montrealpython.org/|Blog de la communauté Python de Montréal]] * [[http://www.scientificpython.net/pyblog.html|Blog de Greg von Winckel]] : Scientific Computing with Python * [[http://metakatie.wordpress.com/|my python doodles]] : quelques petites applications scientifiques avec VPython, Tkinter,... * [[http://linux.leunen.com/?cat=15|Autour de Linux, catégorie Python]] * [[http://www.loria.fr/~rougier/coding/python.html|Contributions Python du site de Nicolas P. Rougier (INRIA)]] * [[http://www.blog.pythonlibrary.org/|Blog "The Mouse Vs. The Python"]] * [[http://www.gigante.be/python/index.php|La caverne du Python de Calogero Gigante]] * [[https://sites.google.com/site/pydatalog/pypl/python-blog/pythonisthelanguageoftheyear|évolution de la popularité de Python]] * [[http://www.foxmask.info/|FoxMask]], Le Free de la passion * [[http://zulko.github.io/|Blog de Zulko]] * Contributeurs sur GitHub : * [[https://github.com/Psycojoker?tab=repositories|Psycojoker]] * [[http://wordaligned.org/tag/python/|Word Aligned]], de Thomas Guest * [[http://importpython.com/newsletter/|import python]], weekly newsletter * [[http://python.jpvweb.com/mesrecettespython/doku.php|Les recettes Python de Tyrtamos]] * [[http://www.johndcook.com/blog/|John D. Cook]] (mathématicien) * [[http://www.pysnap.com|PySnap]] * [[http://chrisstrelioff.ws/sandbox/tags/python.html|Chris' sandbox]] * [[https://leemendelowitz.github.io/blog/tag/python.html|Lee (Mendelowitz) on coding]] * [[https://dansaber.wordpress.com/|Regress to Impress]], Dan Saber (UCLA) * [[https://analytics4all.org/python/|Analytics4All]], Benjamin Larson * [[https://realpython.com/|Real Python]], Learn Python Programming by Example * [[https://thepythoncodingbook.com/blog/|The Python Coding Book]] * [[https://inventwithpython.com/blog/|The Invent with Python Blog]] ==== Articles intéressants ==== * [[https://www.endgame.com/blog/open-sourcing-your-own-python-library-101|Open-Sourcing Your Own Python Library 101]] * [[http://www.vertabelo.com/blog/technical-articles/web-app-development-with-flask-sqlalchemy-bootstrap-introduction|Flask web application development]] * [[http://www.analyticsvidhya.com/blog/2015/05/data-visualization-python/|9 popular ways to perform Data Visualization in Python]] * [[https://intellipaat.com/interview-question/python-interview-questions/|Python Interview Questions]] * [[http://depado.markdownblog.com/2015-05-13-tutorial-on-pocketsphinx-with-python-3-4|Tutorial on PocketSphinx with Python 3.4]] (reconnaissance vocale) * [[https://blog.ssundarraj.me/the-python-gil-in-2-minutes-80d74d56a1a0#.mkjdgz8oh|Pragmatic Python GIL in 3 Minutes]] * [[http://www.blog.pythonlibrary.org/2016/03/01/python-101-all-about-imports/|All about imports]] * [[https://www.ibm.com/developerworks/community/blogs/jfp/entry/Fast_Computation_of_Julia_Set_in_Python?lang=en|Fast Computation of Julia Set in Python ]] * [[https://speakerdeck.com/lgiordani/dive-into-object-oriented-python|Dive into Object Oriented Python]] (présentation) * [[http://python-resources.pythonblogs.com/304_python_resources/archive/1539_computational_geometry_in_python_from_theory_to_application.html|Computational Geometry in Python: From Theory to Application]] * [[http://www.wildml.com/2015/09/implementing-a-neural-network-from-scratch/|Implementing a Neural Network from Scratch in Python – An Introduction]] * [[https://nylas.com/blog/packaging-deploying-python|How We Deploy Python Code]], Building, packaging, and deploying Python using versioned artifacts in Debian packages * [[https://github.com/sfermigier/awesome-functional-python|Awesome Functional Python]], programmation fonctionnelle en Python * [[https://dataaspirant.com/2016/12/27/k-nearest-neighbor-algorithm-implementaion-python-scratch/|K-nearest neighbor algorithm implementation in Python from scratch]] * [[https://www.analyticsvidhya.com/blog/2017/03/read-commonly-used-formats-using-python/|How to read most commonly used file formats in Data Science (using Python)?]] * [[http://www.learndatasci.com/predicting-housing-prices-linear-regression-using-python-pandas-statsmodels/|Predicting Housing Prices with Linear Regression using Python, pandas, and statsmodels]] * [[https://code.tutsplus.com/tutorials/managing-cron-jobs-using-python--cms-28231|Managing Cron Jobs Using Python]] * [[https://medium.freecodecamp.org/python-collection-of-my-favorite-articles-8469b8455939|The best of Python: a collection of my favorite articles from 2017 and 2018 (so far)]] * [[https://cjolowicz.github.io/posts/hypermodern-python-01-setup/|Hypermodern Python]] (série par Claudio Jolowicz) * [[https://towardsdatascience.com/4-super-useful-python-features-993ae484fbb8|4 Super Useful Python Features]], James Briggs, 08/05/2020 * [[https://medium.com/analytics-vidhya/seven-tips-to-clean-code-with-python-24930d35927f|Seven Tips To Clean Code With Python - Here are the seven tips and code bites that I use every day in my work as a data scientist]] Louis de Bruijn, Medium, Jan 27 2021 ===== De Python 2 à Python 3 ===== Python 3, une nouvelle branche n'assurant pas une rétrocompatibilité avec la branche 2 existe depuis 2007, mais est en version stable depuis moins longtemps. De plus en plus de librairies sont compatibles avec cette branche, mais beaucoup reste à faire. Python 2.7 continue à être maintenu et fonctionne avec la plupart des librairies. La plupart des distributions Linux proposent (Q1 2015) à la fois la branche 2 (invoquée par la commande python) et la branche 3 (les noms sont terminés par le chiffre 3, et l'interpréteur est invoqué par exemple par "python3". C'est dans de nombreux cas la version 3.4 qui est dans les dépôts. La version stable 14.04 LTS de Ubuntu propose Python en version 2.7 et 3.4. Éléments de discussions sur le passage de Python 2 à Python 3 : * [[http://wiki.python.org/moin/Python2orPython3]] * [[http://ianozsvald.com/2013/04/15/more-python-3-3-downloads-than-python-2-7-for-past-3-months/]] * [[https://docs.python.org/3.0/whatsnew/3.0.html]] * [[http://www.informit.com/articles/article.aspx?p=1328795]] * [[https://github.com/asmeurer/python3-presentation]] (fonctionnalités avancées de Python 3) * [[http://www.asmeurer.com/python3-presentation/slides.html|10 awesome features of Python that you can't use because you refuse to upgrade to Python 3]] * [[https://github.com/crazyguitar/pysheeet/blob/master/docs/notes/python-new-py3.rst|New in Python3 cheatsheet]], avec des exemples de code Quelques références sur Python 3 * [[http://isn.irem.univ-mrs.fr/wiki/InitiationPython3|Initiation à Python 3]] * [[https://docs.python.org/2/library/2to3.html|2to3, programme de conversion automatique]] * [[https://python-3-for-scientists.readthedocs.io/en/latest/python3_user_features.html|Useful Python 3 features for users]] Installation conjointe des branches 3 et 2 (Ubuntu) : * [[https://wiki.ubuntu.com/Python/3]] L'installation conjointe se fait avec "sudo apt-get install python3". De nombreux paquets peuvent être listés via synaptic. * [[http://askubuntu.com/questions/229416/making-python-3-3-default-python-3-interpreter-instead-of-3-2]] * [[http://askubuntu.com/questions/244544/how-to-install-python-3-3]] * [[http://linuxg.net/how-to-install-python-3-3-on-ubuntu-13-04-12-10-and-12-04/]] * Configurations d'IDE : * [[http://lists.geany.org/pipermail/users/2012-February/007793.html]] * [[http://terminalobsession.blogspot.be/2012/06/how-to-get-geany-to-use-python3-as-its.html]] * À investiguer : * Pypi, le python package index "en 3" ? * distribute, distutils2, python-pip ? * Python 3.3 & 3.4 et pyvenv vs virtualenv * [[http://www.mechanicalcat.net/richard/log/Python/Python_3_3_and_virtualenv]] * [[http://robinwinslow.co.uk/2013/12/26/python-3-4-virtual-environment/]] Résumés des changements principaux : ^Python 2 ^Python 3 ^ | print a|print(a)| |7/3 → 2 \\ 7./3 → 2.33333333 |7/3 → 2.33333333 \\ 7 / / 3 → 2| |pas de chaîne unicode|les chaînes sont unicode| |binary = string |binary = données binaires (bytes)| |types entier et entier long| un seul type entier (=long)| |dico.has_key('cle') → True/False | 'cle' in dico → True/False | |from Tkinter import * |from tkinter import * | |execfile() |execfile()| |range() --> list \\ xrange() → generator|range() → generator \\ xrange()| |input()|eval(input())| |raw_input()|input()| ===== Trucs, astuces, questions fréquentes, contributions personnelles,... ===== * [[floss:python:pip-pypi|Installer facilement des modules python]] * [[floss:python:cairo-tutoriel|Tutoriel Cairo pour programmeurs Python]] * [[floss:python:activestateselection|sélection de codes sources ActiveState]] * [[floss:python:codes_astuces|Quelques codes astucieux]] * [[floss:python:faq|Questions fréquentes]] * ... ===== À classer : ===== * [[https://github.com/tony/.dot-config/blob/125d1f96d66bff25227b258f08277b749dc6fee4/.vcspull.yaml]] : plein de liens github * [[https://www.udemy.com/learning-python-for-data-analysis-and-visualization/|Learning Python for Data Analysis and Visualization]] (vidéos) * [[https://pythonpedia.com/|Pythonpedia]] (nombreux liens classés, catégorisés) * [[http://www.gibrem.com/python-cookbooks-github-w-12040/|Most Popular Python CookBooks on GitHub]] * [[http://vipulsharma20.blogspot.in/2015/11/playing-pacman-with-gestures.html|control by gestures]] * [[https://github.com/jontonsoup4/ascii_art|ascii art]] (lib) * [[https://micropython.org/|MicroPython]], python optmimisé pour fonctionner sur un micro-contrôleur * [[https://www.youtube.com/watch?v=F6u5rhUQ6dU|Memory Management in Python - The Basics - PyCon 2016]], vidéo par Nina Zakharenko * [[https://medium.com/analytics-vidhya/top-10-nice-to-have-data-science-libraries-d155196710ef|Top 10 Nice-To-Have Data Science Libraries]] * [[https://towardsdatascience.com/7-easter-eggs-in-python-7765dc15a203|7 Easter Eggs in Python]] * [[https://towardsdatascience.com/theres-a-clear-winner-between-matlab-vs-python-f6bb56b2b930|Matlab vs Python: 9 Comparisons For Which Language is Best for You - Towards Data Science]] Zulie Rane, Medium, 02/10/2021 * [[https://python.plainenglish.io/22-things-i-never-knew-about-python-until-recently-compilation-cb8e50e400ae|22 Things I Never Knew About Python Until Recently (Compilation)]] Liu Zuo Lin, Medium, 01/09/2022