floss:python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
floss:python [2018/07/21 01:32] – [Tutoriels, cours] villersdfloss:python [2024/03/24 02:44] (Version actuelle) – [Applications générales en Science] villersd
Ligne 1: Ligne 1:
- 
 ====== Python : quelques références, trucs et astuces ====== ====== 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. 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.
Ligne 8: Ligne 20:
 {{ http://upload.wikimedia.org/wikipedia/commons/thumb/f/f8/Python_logo_and_wordmark.svg/500px-Python_logo_and_wordmark.svg.png }} {{ 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 PythonPython 3, en version 3.(octobre 2017) apporte de nombreuses amélioration mais n'est pas rétro-compatible avec la branche 2.7.x (dernières évolutions de la branche 2). La grande majorité des modulesnotamment scientifiquessont portés vers la nouvelle branche. Si vous débutez, passez d'office à Python ! Si vous utilisez un OS en version stable proposant encore la version 2, il est grands temps de songer à adopter la nouvelle versionHeureusement, tout n'est pas à jeter dans la documentation et les codes de la version 2 :-D+La branche actuelle de Python est celle de Python 3, en version 3.11 (décembre 2022qui 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éebien 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 ?   * Pourquoi apprendre à programmer en Python ?
     * **[[http://issuu.com/wile/docs/article_lebigot|Cliquez ici si vous voulez savoir pourquoi apprendre d'abord 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]]     * [[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 [[http://blog.codeeval.com/codeevalblog/2015#.VQhI-suvg_s=|Most Popular Coding Languages of 2015]] ainsi que le livre [[http://www.oreilly.com/programming/free/python-in-education.csp|Python in Education (Teach, Learn, Program)]], par Nicholas H. Tollervey.+      * //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  ===== =====  Références recommandées pour débutants  =====
Ligne 20: Ligne 32:
 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é ! 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é !
  
-[[http://scratchfr.free.fr/|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]]).+[[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]],... 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]]).
 </note> </note>
-  * 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 ! + 
-    * <del>la **branche 2** : [[https://www.python.org/downloads/release/python-2714/|version 2.7.14]] en janvier 2018. //Cf.// la documentation : +  * **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 ! 
-      [[https://docs.python.org/2/using/index.html|Python Setup and Usage]] +    * la **branche 2 n'est plus supportée depuis janvier 2020 !** (à éviter absolument !!
-      [[https://docs.python.org/2/|Documentation complète]]</del> (**version à obsolescence programmée**+    * la **branche 3** : [[https://www.python.org/downloads/release/python-3111/|version 3.11.1]] en décembre 2022. //Cf.// la documentation :
-    * la **branche 3** : [[https://www.python.org/downloads/release/python-364/|version 3.6.4]] en janvier 2018. //Cf.// la documentation :+
       * [[https://docs.python.org/3/using/index.html|Python Setup and Usage]]       * [[https://docs.python.org/3/using/index.html|Python Setup and Usage]]
       * [[https://docs.python.org/3|Documentation complète]]       * [[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 ... ==== ==== Essayer, débuter, apprendre les bases ... ====
  
-    * [[http://www.codecademy.com/fr/tracks/python-fr-FR|Codecademy]] : __**Apprenez pas-pas les fondamentaux de la programmation Python**__ (site interactif validant votre progression)+<note tip> 
 +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 !** 
 +</note> 
 + 
 +    * [[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 !**     * [[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 !**     * [[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 !**
-    * [[http://www.skulpt.org|skulpt]], implémentation de python dans un navigateur+    * [[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)     * [[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]]     * [[https://groklearning.com/csedweek/|First experience programming]], specially designed for [[http://code.org/|the Hour of Code]]
Ligne 53: Ligne 79:
       * [[https://play.google.com/store/apps/details?id=com.datacamp|Application Android sur Google Play]]       * [[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://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 : ==== ==== Livres, manuels ou exerciseurs de niveau intermédiaire : ====
  
-    * [[http://fr.openclassrooms.com/informatique/cours/apprenez-a-programmer-en-python|Apprenez à programmer en Python]], tutoriel sur openclassrooms (Vincent Le Goff, 2013)+    * [[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]])     * 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)     * 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)
Ligne 71: Ligne 99:
 ---- ----
  
----- 
- 
- 
-{{TOC:2-4 wide}} 
- 
- 
----- 
  
 =====  Références pour une utilisation (scientifique) plus avancée  =====  =====  Références pour une utilisation (scientifique) plus avancée  ===== 
Ligne 83: Ligne 104:
  
 ==== Distributions et installation : ==== ==== Distributions et installation : ====
-  * [[https://store.continuum.io/cshop/anaconda/|Anaconda]], distribution python libre et multiplateforme (Windows, GNU/Linux, Mac OD), en version python2 et python3 (conseillée). +  * [[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://askubuntu.com/questions/505919/installing-anaconda-python-on-ubuntu]] (concerne installation sous Ubuntu GNU/Linux)+
   * [[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).   * [[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.   * 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.
Ligne 96: Ligne 116:
   * [[http://www.pyzo.org/index.html|Pyzo]], environnement basé sur Python 3 et des librairies scientifiques   * [[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)   * [[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]].+  * 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 === === Outils web interactifs ===
Ligne 138: Ligne 164:
   * [[http://web.isen-bretagne.fr/livres/python/index.php|Python en Prépa »]], co-écrit par des étudiants et leur enseignant, ISEN Brest   * [[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://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 +  * [[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 :   * Autres livres de références :
     * Beginning Python, Peter Norton et al., Wiley 2005     * Beginning Python, Peter Norton et al., Wiley 2005
Ligne 152: Ligne 179:
     * [[http://www.southampton.ac.uk/~fangohr/teaching/python/book.html|Python for Computational Science and Engineering]]     * [[http://www.southampton.ac.uk/~fangohr/teaching/python/book.html|Python for Computational Science and Engineering]]
     * Python 101 & Python 201, par Michael Driscoll     * Python 101 & Python 201, par Michael Driscoll
-    * [[http://www.labri.fr/perso/nrougier/from-python-to-numpy/|From Python to Numpy]], 2017 - Nicolas P. Rougier+    * 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]] :   * 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/Non-Programmer's_Tutorial_for_Python|Non-Programmer's Tutorial for Python]]
Ligne 160: Ligne 190:
   * Livres scientifiques basés sur Python :   * 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]]     * [[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 ==== ==== Tutoriels, cours ====
Ligne 184: Ligne 217:
   * Tutoriels ciblés :   * Tutoriels ciblés :
     * [[http://www.analyticsvidhya.com/blog/2015/06/regular-expression-python/|Beginners Tutorial for Regular Expressions in Python]]     * [[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://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]]   * [[http://www.programiz.com/python-programming|Python programming tutorial sur Programiz]]
Ligne 193: Ligne 227:
     * [[https://www.fun-mooc.fr/courses/course-v1:UCA+107001+session01/about|Python 3 : des fondamentaux aux concepts avancés 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://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)
  
  
Ligne 219: Ligne 254:
   * [[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)   * [[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://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://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://wikipython.flibuste.net/|Wiki Python FR]] avec de nombreuses informations pour débutant ou non, des exemples de code,... (en français)
Ligne 233: Ligne 269:
   * [[http://www.pasteur.fr/formation/infobio/python/index.html|Introduction to Programming using Python]] - Programming Course for Biologists at the Pasteur Institute   * [[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://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,...   * Listes de diffusion, forums,...
     * [[http://stackoverflow.com/questions/tagged/python|Stack Overflow, catégorie Python]]     * [[http://stackoverflow.com/questions/tagged/python|Stack Overflow, catégorie Python]]
Ligne 314: Ligne 360:
     * [[http://www.ni.gsu.edu/~rclewley/PyDSTool/index.html|PyDSTool]] pour l'étude de systèmes dynamiques     * [[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://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 ?     * 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://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.
Ligne 346: Ligne 395:
     * [[https://github.com/reubano/meza|Meza, a Python toolkit for processing tabular data]]     * [[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     * [[http://sympy.org/en/index.html|SymPy]] : librairie en mathématique symbolique
-      * [[https://mathics.github.io/|Mathics]], free, light-weight alternative to Mathematica+      * [[https://mathics.org|Mathics]], free, light-weight alternative to Mathematica
     * Images :     * Images :
       * [[http://www.pythonware.com/products/pil/|PIL]] : Python Imaging Library et la [[http://effbot.org/imagingbook/|documentation sur effbot]]       * [[http://www.pythonware.com/products/pil/|PIL]] : Python Imaging Library et la [[http://effbot.org/imagingbook/|documentation sur effbot]]
Ligne 359: Ligne 408:
       * [[http://www.simplecv.org/|SimpleCV]] : interface simplifié à OpenCV : "computer vision made easy"       * [[http://www.simplecv.org/|SimpleCV]] : interface simplifié à OpenCV : "computer vision made easy"
       * [[https://github.com/ojii/pymaging|pymaging]] (pure python)       * [[https://github.com/ojii/pymaging|pymaging]] (pure python)
-    * [[http://www.vpython.org/|Vpython]], visual python, permet la programmation d'animations 3D simples (balles, rebonds, graphes,...). [[http://guigui.developpez.com/Tutoriel/Python/frvpython/webdoc/visual/index.php|traduction française du tutoriel de la version 3]]+    * 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://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://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://new.math.uiuc.edu/math198/repo/illipython/stanblank/pyopengl/collision.py|collision.py]]  et répertoires parents
-      * [[http://vpython.wikidot.com/|Vpython wiki site]] 
     * [[http://code.google.com/p/visvis/|Visvis]] : approche orientée objet de la visualisation     * [[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.pyzo.org|Pyzo]] : environnement d'analyse de données et de visualisation
Ligne 419: Ligne 469:
   * [[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/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://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 +  * [[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]] 
-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]])   * 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://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  ===== =====  Autres applications spécifiques en Science  =====
Ligne 499: Ligne 550:
 =====  Graphical User Interfaces  ===== =====  Graphical User Interfaces  =====
  
-cf. [[http://wiki.python.org/moin/GuiProgramming]]+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)   * TKinter (pour mémoire, car inclu dans la distribution standard de Python)
Ligne 517: Ligne 572:
     * [[http://www.pygtk.org/]]     * [[http://www.pygtk.org/]]
     * [[http://glade.gnome.org/|Glade]], pour créer des interfaces utilisateurs utilisant GTK+     * [[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 ?)   * Curses (text only ?)
     * [[http://docs.python.org/dev/howto/curses.html]]     * [[http://docs.python.org/dev/howto/curses.html]]
     * [[http://inaps.org/articles/developpement/curses-python]]     * [[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   * 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  ===== =====  Librairies particulières  =====
Ligne 553: Ligne 623:
     * [[https://github.com/halfak/mediawiki-utilities|Mediawiki-utilities]] (sous Python 3)     * [[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]]   * [[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  ===== =====  Autres distributions ou programmes utiles, pour utilisateurs avertis, ou programmeurs  =====
Ligne 564: Ligne 643:
     * [[http://guide.python-distribute.org]]     * [[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]]     * [[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]].   * [[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]].
  
Ligne 725: Ligne 805:
   * [[https://analytics4all.org/python/|Analytics4All]], Benjamin Larson   * [[https://analytics4all.org/python/|Analytics4All]], Benjamin Larson
   * [[https://realpython.com/|Real Python]], Learn Python Programming by Example   * [[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 ==== ==== Articles intéressants ====
   * [[https://www.endgame.com/blog/open-sourcing-your-own-python-library-101|Open-Sourcing Your Own Python Library 101]]   * [[https://www.endgame.com/blog/open-sourcing-your-own-python-library-101|Open-Sourcing Your Own Python Library 101]]
Ligne 744: Ligne 826:
   * [[https://code.tutsplus.com/tutorials/managing-cron-jobs-using-python--cms-28231|Managing Cron Jobs Using Python]]   * [[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://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 ===== ===== De Python 2 à Python 3 =====
Ligne 791: Ligne 877:
 |execfile() |<del>execfile()</del>| |execfile() |<del>execfile()</del>|
 |range() --> list \\ xrange() → generator|range() → generator \\ <del>xrange()</del>| |range() --> list \\ xrange() → generator|range() → generator \\ <del>xrange()</del>|
-|filter, map, reduce| reduce | 
-|lambda|<del>lambda</del> | 
 |input()|eval(input())| |input()|eval(input())|
 |raw_input()|input()| |raw_input()|input()|
Ligne 814: Ligne 898:
   * [[https://micropython.org/|MicroPython]], python optmimisé pour fonctionner sur un micro-contrôleur   * [[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://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
 +
  
  
  • floss/python.1532129531.txt.gz
  • Dernière modification : 2018/07/21 01:32
  • de villersd