|
Original |
Translation |
|
39
|
if (x = 0) { // error handling } else { // code that only works for nonzero x }
|
if (x = 0) { // prise en charge de l'erreur } else { // code qui ne fonctionne que quand x est non-zéro }
|
|
40
|
The error is a simple typo: ``x = 0``, which assigns 0 to the variable ``x``, was written while the comparison ``x == 0`` is certainly what was intended.
|
Cette erreur est une simple coquille : ``x = 0``, qui assigne 0 à la variable ``x``, a été écrit alors que la comparaison ``x == 0`` est certainement ce qui était souhaité.
|
|
41
|
Many alternatives have been proposed. Most are hacks that save some typing but use arbitrary or cryptic syntax or keywords, and fail the simple criterion for language change proposals: it should intuitively suggest the proper meaning to a human reader who has not yet been introduced to the construct.
|
De nombreuses alternatives ont été proposées. La plupart des hacks économisaient de la frappe mais utilisaient d'arbitraires ou cryptiques syntaxes ou mot-clés et faillait le simple critère pour proposition de changement du langage : ça doit intuitivement suggérer la bonne signification au lecteur qui n'a pas encore été introduit à la construction.
|
|
42
|
An interesting phenomenon is that most experienced Python programmers recognize the ``while True`` idiom and don't seem to be missing the assignment in expression construct much; it's only newcomers who express a strong desire to add this to the language.
|
Un phénomène intéressant est que la plupart des programmeurs Python expérimentés reconnaissent l'idiome ``while True`` et ne semblent pas manquer l'assignation dans la construction de l'expression; seuls les nouveaux-venus expriment un fort désir d'ajouter ceci au langage.
|
|
43
|
|
44
|
line = f.readline() while line: ... # do something with line... line = f.readline()
|
line = f.readline() while line: ... # faire quelque chose avec line... line = f.readline()
|
|
45
|
The problem with this is that if you change your mind about exactly how you get the next line (e.g. you want to change it into ``sys.stdin.readline()``) you have to remember to change two places in your program -- the second occurrence is hidden at the bottom of the loop.
|
Le problème avec ceci est que si vous changez d'avis sur la manière dont vous allez récupérer la prochaine ligne (ex : vous voulez changer en ``sys.stdin.readline()``) vous devez vous souvenir de le changer à deux endroits dans votre programme -- la deuxième occurrence est cachée en bas de la boucle.
|
|
46
|
The best approach is to use iterators, making it possible to loop through objects using the ``for`` statement. For example, in the current version of Python file objects support the iterator protocol, so you can now write simply::
|
La meilleur approche est d'utiliser les itérateurs, rendant possible de boucler au travers d'objets en utilisant la déclaration ``for``. Par exemple, dans la version actuelle de Python, les fichiers objets supportent le protocole d'itérateur, vous pouvez alors simplement écrire ::
|
|
47
|
for line in f: ... # do something with line...
|
for line in f: ... # faire quelque chose avec line...
|
|
48
|
Why does Python use methods for some functionality (e.g. list.index()) but functions for other (e.g. len(list))?
|
Pourquoi Python utilise des méthodes pour certaines fonctionnalités (ex : list.index()) mais des fonctions pour d'autres (ex : len(list)) ?
|