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
Prochaine révisionLes deux révisions suivantes
floss:python [2020/12/03 08:37] – [Graphical User Interfaces] villersdfloss:python [2021/05/10 09:35] – [Ressources (codes sources, tutoriels, documentation, livres ...)] villersd
Ligne 8: Ligne 8:
 {{ 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.(décembre 2020qui 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 20:
 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]],...
Ligne 27: Ligne 27:
 </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 ! +  * **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 : +    * la **branche 2 n'est plus supportée depuis janvier 2020 !** 
-      * [[https://docs.python.org/2/using/index.html|Python Setup and Usage]] +    * la **branche 3** : [[https://www.python.org/downloads/release/python-391/|version 3.9.1]] en décembre 2020. //Cf.// la documentation :
-      * [[https://docs.python.org/2/|Documentation complète]]</del> (**version à obsolescence programmée**) +
-    * 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 multipliser 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> 
 + 
 +    * [[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 !**
 +    * 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.skulpt.org|skulpt]], implémentation de python dans un navigateur
-    * [[http://pythonfiddle.com/]] 
     * [[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 61: Ligne 69:
 ==== 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 80: Ligne 88:
  
 ==== 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 (**très conseillée !**) avec Jupyter en prime... +  * [[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]]**
-    * [[https://towardsdatascience.com/how-to-successfully-install-anaconda-on-a-mac-and-actually-get-it-to-work-53ce18025f97|How to Successfully Install Anaconda on a Mac]] +
-    [[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 158: Ligne 164:
   * 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 191: Ligne 200:
     * [[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 217: Ligne 227:
   * [[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 232: Ligne 243:
   * [[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]]    * [[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 364: Ligne 384:
       * [[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://vpython.wikidot.com/|Vpython wiki site]]
 +    * GlowScript : [[https://www.glowscript.org/|glowscript.org]] reprend les objectifs de Vpython, (sous Python 3)
 +      * cf. exemples, articel [[https://rjallain.medium.com/a-physicists-guide-to-functions-in-python-9aec73cc4dcb]],...
     * [[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 499: Ligne 521:
 =====  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 
  
   * 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 524: Ligne 549:
   * Interfaces simplifiés :   * Interfaces simplifiés :
     * [[https://pysimplegui.readthedocs.io/en/latest/]] + PySimpleGUIWeb     * [[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)     * [[https://github.com/dddomodossola/remi|Python REMote Interface library]] (cf. PySimpleGUIWeb)
Ligne 755: Ligne 781:
   * [[https://cjolowicz.github.io/posts/hypermodern-python-01-setup/|Hypermodern Python]] (série par Claudio Jolowicz)   * [[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://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
  
  
  • floss/python.txt
  • Dernière modification : 2024/03/24 02:44
  • de villersd