Skip to content

Commit 40793f5

Browse files
committed
reorg 1-2 intro: change order, ends with documentation and then (not) when to choose
1 parent abac318 commit 40793f5

File tree

1 file changed

+152
-139
lines changed

1 file changed

+152
-139
lines changed

notebooks/1-2-introduction-nb.md

Lines changed: 152 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -133,150 +133,21 @@ possède les droits sur Python et assure son développement
133133
import 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
448325
ArgumentParser??
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

Comments
 (0)