You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: lectures/python_by_example.md
+29-30Lines changed: 29 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,9 +11,9 @@ translation:
11
11
title: Un exemple introductif
12
12
headings:
13
13
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"
15
15
Version 1: Version 1
16
-
Version 1::Imports: Importations
16
+
Version 1::Imports: Importation de bibliothèques
17
17
Version 1::Imports::Why So Many Imports?: "Pourquoi autant d'importations\_?"
18
18
Version 1::Imports::Packages: Packages
19
19
Version 1::Imports::Subpackages: Sous-packages
@@ -45,18 +45,18 @@ translation:
45
45
46
46
## Vue d'ensemble
47
47
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.
49
49
50
50
Dans ce cours, nous allons écrire puis décortiquer de petits programmes Python.
51
51
52
52
L'objectif est de vous présenter la syntaxe de base de Python et ses structures de données.
53
53
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.
55
55
56
56
Vous devriez avoir lu le {doc}`cours <getting_started>` sur la prise en main de Python avant de commencer celui-ci.
57
57
58
58
59
-
## La tâche : tracer un processus de bruit blanc
59
+
## Objectif : simuler et représenter un processus de bruit blanc
60
60
61
61
Supposons que nous voulions simuler et tracer le processus de bruit blanc
62
62
$\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()
91
91
Décomposons ce programme et voyons comment il fonctionne.
92
92
93
93
(import)=
94
-
### Importations
94
+
### Importation de bibliothèques
95
95
96
96
Les deux premières lignes du programme importent des fonctionnalités provenant de bibliothèques
97
97
de code externes.
98
98
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
100
100
101
101
* le travail avec des tableaux (vecteurs et matrices)
102
102
* les fonctions mathématiques courantes comme `cos` et `sqrt`
@@ -184,12 +184,12 @@ sqrt(4)
184
184
185
185
C'est également correct.
186
186
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.
188
188
189
189
L'inconvénient est que, dans un long programme, ces deux lignes pourraient être
190
190
séparées par de nombreuses autres lignes.
191
191
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`
193
193
194
194
### Tirages aléatoires
195
195
@@ -207,7 +207,7 @@ dans `ϵ_values`.
207
207
208
208
Les deux lignes suivantes génèrent le graphique.
209
209
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.
211
211
212
212
## Implémentations alternatives
213
213
@@ -216,7 +216,7 @@ Essayons d'écrire quelques versions alternatives de {ref}`notre premier program
216
216
Les programmes ci-dessous sont moins efficaces que l'original, et donc
217
217
quelque peu artificiels.
218
218
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.
220
220
221
221
### Une version avec une boucle for
222
222
@@ -253,7 +253,7 @@ En bref,
253
253
254
254
Considérons l'instruction `ϵ_values = []`, qui crée une liste vide.
255
255
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.
257
257
258
258
Les éléments des listes sont ordonnés, et les doublons sont autorisés dans les listes.
259
259
@@ -279,7 +279,7 @@ x
279
279
280
280
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`.
281
281
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 :
283
283
284
284
* 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.
285
285
* 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):
323
323
324
324
Python exécute les deux lignes indentées `ts_length` fois avant de passer à la suite.
325
325
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.
327
327
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*.
329
329
330
330
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.
331
331
@@ -366,7 +366,7 @@ Ainsi, contrairement à la plupart des autres langages, les espaces blancs dans
366
366
Une fois que vous vous y êtes habitué, c'est une bonne chose : cela
367
367
368
368
* 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.
370
370
371
371
D'un autre côté, cela demande un peu de soin pour être fait correctement, alors veuillez retenir :
372
372
@@ -400,15 +400,16 @@ plt.plot(ϵ_values)
400
400
plt.show()
401
401
```
402
402
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
+
404
405
405
406
Dans ce cas, le programme continuera d'ajouter des valeurs à la liste ```ϵ_values``` jusqu'à ce que ```i``` soit égal à ```ts_length``` :
406
407
407
408
```{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
409
410
```
410
411
411
-
Notez que
412
+
Notez que
412
413
413
414
* le bloc de code de la boucle `while` est à nouveau délimité uniquement par l'indentation.
414
415
* l'instruction `i = i + 1` peut être remplacée par `i += 1`.
@@ -448,11 +449,10 @@ plt.show()
448
449
L'instruction `b = np.empty(T+1)` alloue de l'espace mémoire pour `T+1`
449
450
nombres (à virgule flottante).
450
451
451
-
Ces nombres sont remplis par la boucle `for`.
452
+
Ces nombres sont remplis au moyen de la boucle `for`.
452
453
453
454
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.
456
456
457
457
Remarquez que nous avons ajouté une légende au graphique --- une fonctionnalité que l'on vous demandera
458
458
d'utiliser dans les exercices.
@@ -484,7 +484,7 @@ import numpy as np
484
484
import matplotlib.pyplot as plt
485
485
```
486
486
487
-
Posez $T=200$ et $\alpha = 0.9$.
487
+
On pose $T = 200$ et $\alpha = 0.9$.
488
488
489
489
```{exercise-end}
490
490
```
@@ -612,8 +612,7 @@ plt.show()
612
612
:label: pbe_ex4
613
613
```
614
614
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.
617
616
618
617
En Python, les conditions sont généralement implémentées avec la syntaxe if--else.
619
618
@@ -706,8 +705,8 @@ import numpy as np
706
705
Vos indices sont les suivants :
707
706
708
707
* 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$.
711
710
```
712
711
713
712
```{exercise-end}
@@ -731,7 +730,7 @@ $\pi = A / r^2$.
731
730
Résumé : si nous pouvons estimer l'aire d'un cercle de diamètre 1, alors diviser
732
731
par $r^2 = (1/2)^2 = 1/4$ donne une estimation de $\pi$.
733
732
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
0 commit comments