@@ -133,150 +133,21 @@ possède les droits sur Python et assure son développement
133133import this
134134```
135135
136- ## quand utiliser python ?
137-
138- * scripts (mais pas ** uniquement** ça!)
139- * programmation système
140- * Internet
141- * base de données
142- * prototypage rapide
143- * calcul scientifique avec ` numpy `
144- * exploration dans les données avec ` pandas ` et ` scikit-learn `
145- * backend web avec ` Django ` / ` Flask `
146- * …
147-
148- +++
149-
150- ### quand ne pas utiliser Python ?
151-
152- * Python est ** plutôt gourmand en mémoire**
153- * tout est objet ➔ surcoût partout
154- * exemples sur une machine 64 bits
155-
156- | objet | octets | natif C |
157- | ----------------| -----------| ---------|
158- | petit entier | 28 octets | 8 octets|
159- | chaine 'a' | 50 octets | 1 octet|
160- | chaine 'é' | 74 octets | 2 octets|
161-
162- * Python plutôt bon en termes de vitesse
163- * fonctions de base implémentées en C optimisé
164- * PyPy très rapide par rapport à CPython
165- * pensez à utiliser ` numpy `
166-
167136+++
168137
169- ### comment prendre la décision d’utiliser Python ?
170-
171- * balancer vitesse de développement avec performance
172- * Python gagne presque toujours
173-
174- +++ {"slideshow": {"slide_type": "slide"}}
175-
176- ### comment tester la performance ?
177-
178- ``` {code-cell} ipython3
179- %%timeit
180-
181- # on construit la liste des premiers carrés
182- [x**2 for x in range(10000)]
183- ```
184-
185- ```` {admonition} attention
186- :class: attention
187-
188- cette construction avec les `%` n'est pas standard Python, c'est une *magic* de IPython
189- on ne peut l'utiliser que dans `ipython` ou dans les notebooks
190- ````
191-
192- +++ {"slideshow": {"slide_type": "slide"}, "tags": [ "level_intermediate"] }
193-
194- ### comment tester la place mémoire ?
195-
196- ``` {code-cell} ipython3
197- :tags: [level_intermediate, gridwidth-1-2]
198-
199- # retourne le nombre d'octets
200- # utilisés pour stoker un objet
201-
202- import sys
203- sys.getsizeof([10])
204- ```
205-
206- ``` {code-cell} ipython3
207- :tags: [level_intermediate, gridwidth-1-2]
208-
209- sys.getsizeof([10, 20])
210- ```
211-
212- ``` {code-cell} ipython3
213- :tags: [level_intermediate]
214-
215- sys.getsizeof([10, 20, 30])
216- ```
217-
218138## quelle version de python ?
219139
220140* version 3.x
221141 * conseil: ne pas utiliser un trait spécifique à la toute dernière version pour du code à large diffusion
222- * minimum recommandé 3.10
223-
224- * {del}` version 2.7 `
225- * ** surtout ne pas utiliser !**
226- * en fin de vie - supporté jusque 1er janvier 2020
227- * de moins en moins problématique (mais attention sur MacOS)
228-
229- +++
230-
231- ## documentation
232-
233- personnellement, pour un accès rapide à la documentation, je fais très facilement une recherche google genre
234-
235- > python module datetime
236-
237- ```` {admonition} le plus simple: chercher sur google
238- :class: tip
239-
240- que l'on peut consulter aussi comme ceci
241- <https://www.google.com/search?q=python+module+datetime>
242-
243- ````
244-
245- +++ {"slideshow": {"slide_type": "slide"}}
246-
247- ### fourni avec Python
248-
249- * site officielle de la doc Python
250- * < https://docs.python.org/ >
251- * aussi en français ici < https://docs.python.org/fr/3/ >
252- * très riche: du tutoriel à la description du langage
253- * contient notamment le Python tutorial
254- * < https://docs.python.org/3/tutorial/ >
255- * initialement Guido van Rossum
256- * niveau débutant à moyen
142+ * une version par an (actuellement 3.13)
143+ * minimum recommandé (aujourd'hui en 2025): 3.10
257144
258- +++ {"slideshow": {"slide_type": "slide"}}
259-
260- ### des cours
261-
262- * [ MOOC Python : des fondamentaux à l'utilisation du langage] ( https://www.fun-mooc.fr/fr/cours/python-3-des-fondamentaux-aux-concepts-avances-du-langage/ )
263- * A. Legout et T. Parmentelat
264- * [ MOOC : apprendre à coder en Python] ( https://www.fun-mooc.fr/en/cours/apprendre-a-coder-avec-python/ )
265- un peu plus simple
145+ ``` {admonition} ne plus utiliser 2.x !
146+ :class: danger dropdown
266147
267- * http://fr.openclassrooms.com/informatique/cours/apprenez-a-programmer-en-python
268- * et sans doute des dizaines d'autres
269-
270- +++ {"slideshow": {"slide_type": "slide"}}
271-
272- ### et aussi
273-
274- * l'incontournable stackoverflow (SO)
275- * < https://stackoverflow.com/questions/tagged/python+python-3.x >
276- * on peut directement chercher sur Google
277-
278- * enfin pour ceux qui aiment les * cheat sheet*
279- * < https://perso.limsi.fr/pointal/python:memento >
148+ * la version 2.7 est morte et enterré (a été supportée jusque 1er janvier 2020)
149+ * de moins en moins problématique (mais attention sur MacOS !)
150+ ```
280151
281152+++ {"slideshow": {"slide_type": "slide"}}
282153
@@ -290,7 +161,9 @@ que l'on peut consulter aussi comme ceci
290161 * interpréteur en ligne de commande
291162* en option, ` ipython ` en remplacement
292163 * nécessite une installation supplémentaire
293- * ` pip install ipython `
164+ ``` bash
165+ pip install ipython
166+ ```
294167
295168` ` ` ` {admonition} pour installer des librairies depuis le web (pypi.org)
296169:class: tip
@@ -313,8 +186,12 @@ dans le terminal toujours:
313186+++
314187
315188* ** Jupyter notebooks**
316- * ` pip install jupyterlab `
317- * ` jupyter lab `
189+ ` ` ` bash
190+ # pour installer
191+ pip install jupyterlab
192+ # et ensuite pour démarrer la session de notebooks
193+ jupyter lab
194+ ` ` `
318195* IDE de votre choix (** vs-code** , PyCharm, SublimeText,
319196 atom, eclipse, ... bcp de variantes)
320197
@@ -447,3 +324,139 @@ from argparse import ArgumentParser
447324# avant de pouvoir instrospecter l'objet ArgumentParser
448325ArgumentParser??
449326```
327+
328+ +++
329+
330+ ## documentation
331+
332+ personnellement, pour un accès rapide à la documentation, je fais très facilement une recherche google genre
333+
334+ > python module datetime
335+
336+ ```` {admonition} le plus simple: chercher sur google
337+ :class: tip
338+
339+ que l'on peut consulter aussi comme ceci
340+ <https://www.google.com/search?q=python+module+datetime>
341+
342+ ````
343+
344+ +++ {"slideshow": {"slide_type": "slide"}}
345+
346+ ### fourni avec Python
347+
348+ * site officiel de la doc Python
349+ * < https://docs.python.org/ >
350+ * aussi en français ici < https://docs.python.org/fr/3/ >
351+ * très riche: du tutoriel à la description du langage
352+ * contient notamment le Python tutorial
353+ * < https://docs.python.org/3/tutorial/ >
354+ * initialement Guido van Rossum
355+ * niveau débutant à moyen
356+
357+ +++ {"slideshow": {"slide_type": "slide"}}
358+
359+ ### des cours
360+
361+ * [ MOOC Python : des fondamentaux à l'utilisation du langage] ( https://www.fun-mooc.fr/fr/cours/python-3-des-fondamentaux-aux-concepts-avances-du-langage/ )
362+ * A. Legout et T. Parmentelat
363+ * [ MOOC : apprendre à coder en Python] ( https://www.fun-mooc.fr/en/cours/apprendre-a-coder-avec-python/ )
364+ un peu plus simple
365+
366+ * http://fr.openclassrooms.com/informatique/cours/apprenez-a-programmer-en-python
367+ * et sans doute des dizaines d'autres
368+
369+ +++ {"slideshow": {"slide_type": "slide"}}
370+
371+ ### et aussi
372+
373+ * l'incontournable stackoverflow (SO)
374+ * < https://stackoverflow.com/questions/tagged/python+python-3.x >
375+ * on peut directement chercher sur Google
376+
377+ * enfin pour ceux qui aiment les * cheat sheet*
378+ * < https://perso.limsi.fr/pointal/python:memento >
379+
380+ +++
381+
382+ ## quand utiliser python ?
383+
384+ * scripts (mais pas ** uniquement** ça!)
385+ * programmation système
386+ * Internet
387+ * base de données
388+ * prototypage rapide
389+ * calcul scientifique avec ` numpy `
390+ * exploration dans les données avec ` pandas ` et ` scikit-learn `
391+ * backend web avec ` Django ` / ` Flask `
392+ * …
393+
394+ +++
395+
396+ ### quand ne pas utiliser Python ?
397+
398+ * Python est ** plutôt gourmand en mémoire**
399+ * tout est objet ➔ surcoût partout
400+ * exemples sur une machine 64 bits
401+
402+ | objet | octets | natif C |
403+ | ----------------| -----------| ---------|
404+ | petit entier | 28 octets | 8 octets|
405+ | chaine 'a' | 50 octets | 1 octet|
406+ | chaine 'é' | 74 octets | 2 octets|
407+
408+ * Python plutôt bon en termes de vitesse
409+ * fonctions de base implémentées en C optimisé
410+ * PyPy très rapide par rapport à CPython
411+ * pensez à utiliser ` numpy `
412+
413+ +++
414+
415+ ### comment prendre la décision d’utiliser Python ?
416+
417+ * balancer vitesse de développement avec performance
418+ * Python gagne presque toujours
419+
420+ +++ {"slideshow": {"slide_type": "slide"}}
421+
422+ ### comment tester la performance ?
423+
424+ ``` {code-cell} ipython3
425+ %%timeit
426+
427+ # on construit la liste des premiers carrés
428+ [x**2 for x in range(10000)]
429+ ```
430+
431+ ```` {admonition} attention
432+ :class: attention
433+
434+ cette construction avec les `%` n'est pas standard Python, c'est une *magic* de IPython
435+ on ne peut l'utiliser que dans `ipython` ou dans les notebooks
436+ ````
437+
438+ +++ {"slideshow": {"slide_type": "slide"}, "tags": [ "level_intermediate"] }
439+
440+ ### comment tester la place mémoire ?
441+
442+ ``` {code-cell} ipython3
443+ :tags: [level_intermediate, gridwidth-1-2]
444+
445+ # retourne le nombre d'octets
446+ # utilisés pour stoker un objet
447+
448+ import sys
449+ sys.getsizeof([10])
450+ ```
451+
452+ ``` {code-cell} ipython3
453+ :tags: [level_intermediate, gridwidth-1-2]
454+
455+ sys.getsizeof([10, 20])
456+ ```
457+
458+ ``` {code-cell} ipython3
459+ :tags: [level_intermediate]
460+
461+ sys.getsizeof([10, 20, 30])
462+ ```
0 commit comments