2019-01-18 22:41:27 +00:00
|
|
|
# Python Introduction Slides
|
|
|
|
|
2019-12-22 14:46:35 +00:00
|
|
|
https://mdk.fr/python-initiation/
|
2020-01-12 13:20:57 +00:00
|
|
|
|
2020-01-12 19:51:22 +00:00
|
|
|
|
2020-01-12 13:20:57 +00:00
|
|
|
## TODO
|
|
|
|
|
2021-02-01 07:51:10 +00:00
|
|
|
- http://scipy.github.io/old-wiki/pages/Tentative_NumPy_Tutorial
|
|
|
|
- `*` peut être vu comme de l'unpacking vers des noms qu'on ne voit pas.
|
|
|
|
- Ajouter une slide sur "jamais de \ en fin de ligne", il y a toujours
|
|
|
|
un moyen plus lisible.
|
|
|
|
- https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html Why numbering should start at zero
|
2020-01-13 21:25:16 +00:00
|
|
|
- Les imports
|
2020-02-20 21:22:12 +00:00
|
|
|
- Attention avec `def fib` jour 1 on montre les fonctions avant de les
|
|
|
|
avoir expliquées.
|
|
|
|
- with statement
|
2020-01-12 13:20:57 +00:00
|
|
|
|
|
|
|
|
|
|
|
## Notes
|
|
|
|
|
2021-02-01 07:51:10 +00:00
|
|
|
Les arguments par defaut conservés peuvent service de memoizer:
|
|
|
|
|
|
|
|
def fib(x, memo={}):
|
|
|
|
...
|
|
|
|
|
2020-01-12 13:20:57 +00:00
|
|
|
**Aucune** fonction n'est montée avant le 3, (à part des méthodes sur
|
|
|
|
les types natifs).
|
2020-01-13 17:22:26 +00:00
|
|
|
|
|
|
|
Souci : Jour 1 pytest nécessite Jour 2 pip...
|
2020-03-01 23:57:54 +00:00
|
|
|
|
|
|
|
|
|
|
|
# La suite du programme avancé
|
|
|
|
|
|
|
|
|
|
|
|
- Packaging
|
|
|
|
- cookiecutter : docs/, tests/, README, setup.cfg, setup.py, ...
|
|
|
|
|
|
|
|
- Multiprocessing / Multithreading / Asyncio
|
|
|
|
- IO Bound vs CPU Bound
|
|
|
|
- Locks vs Queues
|
|
|
|
|
|
|
|
- Code quality
|
|
|
|
- import this, explicit is better
|
|
|
|
- sémantique : les ternaires, les listes en intension, sont des
|
|
|
|
expressions, elles doivent être utilisées comme des expressions,
|
|
|
|
pas comme des instructions.
|
|
|
|
- TDD
|
|
|
|
- pas de print, logging FTW.
|
|
|
|
- pas de "logging tiers", personne ne connaît, on reste sur `logging`.
|
|
|
|
- -Xdev
|
|
|
|
- black, ..., pass
|
|
|
|
- pytest, doctest
|
|
|
|
- pytest-cov
|
|
|
|
- hypothesis
|
|
|
|
- flake8
|
|
|
|
- flake8-bugbear
|
|
|
|
- tox
|
|
|
|
- mypy
|
|
|
|
- black
|
|
|
|
- pdb, breakpoint()
|
|
|
|
- EAFP, LBYL
|
|
|
|
|
|
|
|
- Performance
|
|
|
|
- Les types natifs : Leur complexité algorithmique
|
|
|
|
- Cython
|
|
|
|
- pypy
|
|
|
|
- cffi
|
|
|
|
- cprofile / pstats
|
|
|
|
|
|
|
|
- Libs
|
|
|
|
- re
|
|
|
|
- argparse
|
|
|
|
- pathlib
|
|
|
|
- logging
|
|
|
|
- numpy
|
|
|
|
- jupyter
|