Skip to content

Commit 01b37c0

Browse files
authored
Update python_by_example.md
1 parent 212fda1 commit 01b37c0

1 file changed

Lines changed: 29 additions & 30 deletions

File tree

lectures/python_by_example.md

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ translation:
1111
title: Un exemple introductif
1212
headings:
1313
Overview: Vue d'ensemble
14-
'The Task: Plotting a White Noise Process': "La tâche\_: tracer un processus de bruit blanc"
14+
'The Task: Plotting a White Noise Process': "Objectif\_: simuler et représenter un processus de bruit blanc"
1515
Version 1: Version 1
16-
Version 1::Imports: Importations
16+
Version 1::Imports: Importation de bibliothèques
1717
Version 1::Imports::Why So Many Imports?: "Pourquoi autant d'importations\_?"
1818
Version 1::Imports::Packages: Packages
1919
Version 1::Imports::Subpackages: Sous-packages
@@ -45,18 +45,18 @@ translation:
4545

4646
## Vue d'ensemble
4747

48-
Nous sommes maintenant prêts à commencer à apprendre le langage Python lui-même.
48+
Nous sommes maintenant prêts à aborder le langage Python proprement dit.
4949

5050
Dans ce cours, nous allons écrire puis décortiquer de petits programmes Python.
5151

5252
L'objectif est de vous présenter la syntaxe de base de Python et ses structures de données.
5353

54-
Des concepts plus approfondis seront abordés dans les cours ultérieurs.
54+
Les notions plus avancées seront abordées dans les chapitres suivants.
5555

5656
Vous devriez avoir lu le {doc}`cours <getting_started>` sur la prise en main de Python avant de commencer celui-ci.
5757

5858

59-
## La tâche : tracer un processus de bruit blanc
59+
## Objectif : simuler et représenter un processus de bruit blanc
6060

6161
Supposons que nous voulions simuler et tracer le processus de bruit blanc
6262
$\epsilon_0, \epsilon_1, \ldots, \epsilon_T$, où chaque tirage $\epsilon_t$ est un tirage indépendant d'une loi normale centrée réduite.
@@ -91,12 +91,12 @@ plt.show()
9191
Décomposons ce programme et voyons comment il fonctionne.
9292

9393
(import)=
94-
### Importations
94+
### Importation de bibliothèques
9595

9696
Les deux premières lignes du programme importent des fonctionnalités provenant de bibliothèques
9797
de code externes.
9898

99-
La première ligne importe {doc}`NumPy <numpy>`, un package Python privilégié pour des tâches telles que
99+
La première ligne importe {doc}`NumPy <numpy>`, une bibliothèque Python très utilisée pour des tâches telles que
100100

101101
* le travail avec des tableaux (vecteurs et matrices)
102102
* les fonctions mathématiques courantes comme `cos` et `sqrt`
@@ -184,12 +184,12 @@ sqrt(4)
184184

185185
C'est également correct.
186186

187-
L'avantage est qu'il y a moins à taper si nous utilisons `sqrt` souvent dans notre code.
187+
Cette écriture permet d'alléger le code lorsque la fonction `sqrt` est utilisée fréquemment.
188188

189189
L'inconvénient est que, dans un long programme, ces deux lignes pourraient être
190190
séparées par de nombreuses autres lignes.
191191

192-
Il est alors plus difficile pour les lecteurs de savoir d'où vient `sqrt`, s'ils le souhaitent.
192+
En revanche, dans un programme long, il peut devenir plus difficile de déterminer de quelle bibliothèque provient `sqrt`
193193

194194
### Tirages aléatoires
195195

@@ -207,7 +207,7 @@ dans `ϵ_values`.
207207

208208
Les deux lignes suivantes génèrent le graphique.
209209

210-
Nous pouvons et allons examiner ci-dessous diverses façons de configurer et d'améliorer ce graphique.
210+
Nous verrons plus loin différentes façons de configurer et d'améliorer ce graphique.
211211

212212
## Implémentations alternatives
213213

@@ -216,7 +216,7 @@ Essayons d'écrire quelques versions alternatives de {ref}`notre premier program
216216
Les programmes ci-dessous sont moins efficaces que l'original, et donc
217217
quelque peu artificiels.
218218

219-
Mais ils nous aident à illustrer une syntaxe et une sémantique Python importantes dans un cadre familier.
219+
Ils permettent néanmoins d'illustrer, dans un contexte familier, plusieurs éléments importants de la syntaxe et du fonctionnement de Python.
220220

221221
### Une version avec une boucle for
222222

@@ -253,7 +253,7 @@ En bref,
253253

254254
Considérons l'instruction `ϵ_values = []`, qui crée une liste vide.
255255

256-
Les listes sont une structure de données native de Python utilisée pour regrouper une collection d'objets.
256+
Une liste est une structure de données native de Python qui permet de regrouper plusieurs objets.
257257

258258
Les éléments des listes sont ordonnés, et les doublons sont autorisés dans les listes.
259259

@@ -279,7 +279,7 @@ x
279279

280280
Ici `append()` est ce qu'on appelle une **méthode**, c'est-à-dire une fonction « attachée à » un objet --- dans ce cas, la liste `x`.
281281

282-
Nous apprendrons tout sur les méthodes {doc}`plus tard <oop_intro>`, mais juste pour vous donner une idée,
282+
Nous étudierons les méthodes plus en détail dans un {doc}`chapitre ultérieur <oop_intro>`. Pour le moment, retenons simplement que :
283283

284284
* Les objets Python tels que les listes, les chaînes de caractères, etc. ont tous des méthodes utilisées pour manipuler les données contenues dans l'objet.
285285
* Les objets chaînes de caractères ont des [méthodes de chaîne](https://docs.python.org/3/library/stdtypes.html#string-methods), les objets listes ont des [méthodes de liste](https://docs.python.org/3/tutorial/datastructures.html#more-on-lists), etc.
@@ -323,9 +323,9 @@ for i in range(ts_length):
323323

324324
Python exécute les deux lignes indentées `ts_length` fois avant de passer à la suite.
325325

326-
Ces deux lignes sont appelées un **bloc de code**, car elles constituent le « bloc » de code sur lequel nous bouclons.
326+
Ces deux lignes constituent un **bloc de code**, c'est-à-dire l'ensemble des instructions répétées à chaque itération.
327327

328-
Contrairement à la plupart des autres langages, Python connaît l'étendue du bloc de code *uniquement grâce à l'indentation*.
328+
Contrairement à la plupart des autres langages, Python détermine les limites du bloc de code *uniquement à partir de l'indentation*.
329329

330330
Dans notre programme, l'indentation diminue après la ligne `ϵ_values.append(e)`, indiquant à Python que cette ligne marque la limite inférieure du bloc de code.
331331

@@ -366,7 +366,7 @@ Ainsi, contrairement à la plupart des autres langages, les espaces blancs dans
366366
Une fois que vous vous y êtes habitué, c'est une bonne chose : cela
367367

368368
* force une indentation propre et cohérente, améliorant la lisibilité
369-
* supprime l'encombrement, comme les accolades ou les instructions de fin utilisées dans d'autres langages
369+
* évite certains éléments syntaxiques supplémentaires, comme les accolades ou les mots-clés de fin utilisés dans d'autres langages.
370370

371371
D'un autre côté, cela demande un peu de soin pour être fait correctement, alors veuillez retenir :
372372

@@ -400,15 +400,16 @@ plt.plot(ϵ_values)
400400
plt.show()
401401
```
402402

403-
Une boucle while continuera d'exécuter le bloc de code délimité par l'indentation jusqu'à ce que la condition (```i < ts_length```) soit satisfaite.
403+
Une boucle while exécute le bloc de code délimité par l'indentation tant que la condition (```i < ts_length```) est vraie.
404+
404405

405406
Dans ce cas, le programme continuera d'ajouter des valeurs à la liste ```ϵ_values``` jusqu'à ce que ```i``` soit égal à ```ts_length``` :
406407

407408
```{code-cell} python3
408-
i == ts_length #la condition de fin de la boucle while
409+
i == ts_length # la condition de fin de la boucle while
409410
```
410411

411-
Notez que
412+
Notez que
412413

413414
* le bloc de code de la boucle `while` est à nouveau délimité uniquement par l'indentation.
414415
* l'instruction `i = i + 1` peut être remplacée par `i += 1`.
@@ -448,11 +449,10 @@ plt.show()
448449
L'instruction `b = np.empty(T+1)` alloue de l'espace mémoire pour `T+1`
449450
nombres (à virgule flottante).
450451

451-
Ces nombres sont remplis par la boucle `for`.
452+
Ces nombres sont remplis au moyen de la boucle `for`.
452453

453454
Allouer la mémoire au départ est plus efficace que d'utiliser une liste Python et
454-
`append`, car cette dernière doit demander de manière répétée de l'espace de stockage au
455-
système d'exploitation.
455+
`append`, car l'utilisation répétée de cette dernière peut nécessiter de nouvelles allocations de mémoire.
456456

457457
Remarquez que nous avons ajouté une légende au graphique --- une fonctionnalité que l'on vous demandera
458458
d'utiliser dans les exercices.
@@ -484,7 +484,7 @@ import numpy as np
484484
import matplotlib.pyplot as plt
485485
```
486486

487-
Posez $T=200$ et $\alpha = 0.9$.
487+
On pose $T = 200$ et $\alpha = 0.9$.
488488

489489
```{exercise-end}
490490
```
@@ -612,8 +612,7 @@ plt.show()
612612
:label: pbe_ex4
613613
```
614614

615-
Un aspect important de pratiquement tous les langages de programmation est le branchement et
616-
les conditions.
615+
Les branchements conditionnels constituent un élément essentiel de presque tous les langages de programmation.
617616

618617
En Python, les conditions sont généralement implémentées avec la syntaxe if--else.
619618

@@ -706,8 +705,8 @@ import numpy as np
706705
Vos indices sont les suivants :
707706
708707
* Si $U$ est une variable aléatoire uniforme bivariée sur le carré unité $(0, 1)^2$, alors la probabilité que $U$ se trouve dans un sous-ensemble $B$ de $(0,1)^2$ est égale à l'aire de $B$.
709-
* Si $U_1,\ldots,U_n$ sont des copies IID de $U$, alors, à mesure que $n$ devient grand, la fraction qui tombe dans $B$ converge vers la probabilité d'atterrir dans $B$.
710-
* Pour un cercle, $area = \pi * radius^2$.
708+
* Si $U_1,\ldots,U_n$ sont des copies IID de $U$, alors, lorsque $n$ devient suffisamment grand, la fraction qui tombe dans $B$ converge vers la probabilité que U appartienne à $B$.
709+
* Pour un cercle, $aire = \pi * rayon^2$.
711710
```
712711

713712
```{exercise-end}
@@ -731,7 +730,7 @@ $\pi = A / r^2$.
731730
Résumé : si nous pouvons estimer l'aire d'un cercle de diamètre 1, alors diviser
732731
par $r^2 = (1/2)^2 = 1/4$ donne une estimation de $\pi$.
733732

734-
Nous estimons l'aire en échantillonnant des uniformes bivariées et en regardant la
733+
Nous estimons l'aire en générant des observations d'une loi uniforme bidimensionnelle et en regardant la
735734
fraction qui tombe dans le cercle.
736735

737736
```{code-cell} python3
@@ -755,8 +754,8 @@ for i in range(n):
755754
756755
area_estimate = count / n
757756
758-
print(area_estimate * 4) # division par radius**2
757+
print(area_estimate * 4) # division par rayon**2
759758
```
760759

761760
```{solution-end}
762-
```
761+
```

0 commit comments

Comments
 (0)