relecture
This commit is contained in:
parent
407335b459
commit
aa918fec18
|
@ -25,9 +25,6 @@ Souci : Jour 1 pytest nécessite Jour 2 pip...
|
|||
- Packaging
|
||||
- cookiecutter : docs/, tests/, README, setup.cfg, setup.py, ...
|
||||
|
||||
- List comprehension avancé
|
||||
- Double for, double if, walrus
|
||||
|
||||
- Multiprocessing / Multithreading / Asyncio
|
||||
- IO Bound vs CPU Bound
|
||||
- Locks vs Queues
|
||||
|
|
|
@ -238,3 +238,69 @@ Notes:
|
|||
Oui, par exemple Django `@atomic` et with `atomic:`, `contextlib.ContextDecorator`.
|
||||
|
||||
Parler des gestionnaires de contextes réutilisables, puis réentrants.
|
||||
|
||||
|
||||
## The Walrus Operator
|
||||
|
||||
`:=`
|
||||
|
||||
Notes:
|
||||
|
||||
Démo REPL avec re.match, rappeler que les parenthèses sont souvent
|
||||
obligatoires.
|
||||
|
||||
|
||||
## Les listes en intension
|
||||
|
||||
```python
|
||||
l = []
|
||||
for i in range(5):
|
||||
if i % 2 == 0:
|
||||
for j in range(5):
|
||||
if j % 2 == 0:
|
||||
for k in range(5):
|
||||
if k % 2 == 0:
|
||||
if i + j + k == 4:
|
||||
l.append((i,j,k))
|
||||
```
|
||||
|
||||
## Les listes en intension
|
||||
|
||||
```python
|
||||
>>> [(i, j, k)
|
||||
... for i in range(5)
|
||||
... if i % 2 == 0
|
||||
... for j in range(5)
|
||||
... if j % 2 == 0
|
||||
... for k in range(5)
|
||||
... if k % 2 == 0
|
||||
... if i + j + k == 4]
|
||||
[(0, 0, 4), (0, 2, 2), (0, 4, 0), (2, 0, 2), (2, 2, 0), (4, 0, 0)]
|
||||
```
|
||||
|
||||
Notes:
|
||||
|
||||
Juste pour doctest:
|
||||
|
||||
```python
|
||||
factors = lambda i: [i]
|
||||
```
|
||||
|
||||
## Les listes en intension
|
||||
|
||||
```python
|
||||
{x: factors(x)
|
||||
for x in range(1000)
|
||||
if len(factors(x)) == 3}
|
||||
```
|
||||
|
||||
Notes: si factors est lent (spoiler: il l'est), c'est du gâchis.
|
||||
|
||||
|
||||
## Les listes en intension
|
||||
|
||||
```python
|
||||
{x: prime_factors
|
||||
for x in range(1000)
|
||||
if len(prime_factors := factors(x)) == 3}
|
||||
```
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
## Les octets d'abord
|
||||
|
||||
```python
|
||||
>>> bytes([0x01, 0x02, 0x03]) == b"\x01\x02\x03"
|
||||
>>> bytes([0x01, 0x02]) == b"\x01\x02"
|
||||
True
|
||||
```
|
||||
|
||||
|
@ -49,3 +49,9 @@ Couvre environ 150 langues (environ toutes).
|
|||
|
||||
Calque latin1 de 0 à 255, même C0 (controles bien définis) et C1 (controles
|
||||
ignorés, de 0x80 à 0x9F).
|
||||
|
||||
|
||||
## encoder, décoder
|
||||
|
||||
- `str.encode` → `bytes`
|
||||
- `bytes.decode` → `str`
|
||||
|
|
Loading…
Reference in New Issue
Block a user