A quoi servent les deux points avant un bloc en Python ?
Exemple :
if n == 0:
print "The end"
A quoi servent les deux points avant un bloc en Python ?
Exemple :
if n == 0:
print "The end"
Les deux points sont là pour déclarer le début d'un bloc en retrait.
Techniquement, ce n'est pas nécessaire ; vous pouvez simplement indenter et désindenter lorsque le bloc est terminé. Cependant, d'après le Koan du python "l'explicite est meilleur que l'implicite" (EIBTI), je crois que Guido a délibérément rendu les deux points obligatoires, de sorte que tout déclaration selon laquelle devrait être suivi d'un code indenté se terminant par deux points. (Il autorise également les codes à une ligne si vous continuez après les deux points, mais ce style n'est pas très utilisé).
Il facilite également le travail des éditeurs d'alinéas automatiques tenant compte de la syntaxe, ce qui a également pesé dans la décision.
Cette question s'avère être une FAQ Python et j'ai trouvé une de ses réponses par Guido. aquí :
Pourquoi les deux points sont-ils nécessaires pour les instructions if/while/def/class ?
Les deux points sont nécessaires principalement pour améliorer la lisibilité (un des résultats du langage expérimental ABC). Considérez ceci :
if a == b print a
contre
if a == b: print a
Remarquez que la seconde est légèrement plus facile à lire. Remarquez également que les deux points séparent l'exemple dans cette réponse à la FAQ ; il s'agit d'un usage standard en anglais.
Une autre raison mineure est que les deux-points facilitent la tâche des éditeurs dotés de la coloration syntaxique ; ils peuvent rechercher les deux-points pour décider quand l'indentation doit être augmentée au lieu de devoir effectuer une analyse plus élaborée du texte du programme.
Considérez la liste suivante de choses à acheter à l'épicerie, écrite en pewprikanais.
pewkah
lalala
chunkykachoo
pewpewpew
skunkybacon
Quand je lis ça, je suis confus. Est-ce que chunkykachoo et pewpewpew sont une sorte de lalala ? Ou si chunkykachoo et pewpewpew sont en retrait juste parce que ce sont des objets spéciaux ?
Maintenant, voyons ce qui se passe lorsque mon ami pewprikanais ajoute un deux-points pour m'aider à mieux analyser la liste : (<-- comme ceci)
pewkah
lalala: (<-- see this colon)
chunkykachoo
pewpewpew
skunkybacon
Maintenant il est clair que chunkykachoo et pewpewpew sont une sorte de lalala.
Imaginons qu'une personne commence à apprendre Python, qui se trouve être son premier langage de programmation à apprendre. Sans les deux-points, il y a une forte probabilité qu'elle continue à penser "ces lignes sont indentées parce que ces lignes sont comme des éléments spéciaux", et cela pourrait lui prendre un certain temps pour réaliser que ce n'est pas la meilleure façon de penser l'indentation.
Trois raisons :
Pour autant que je sache, c'est une conception intentionnelle pour rendre plus évident le fait que le lecteur doit s'attendre à une indentation après les deux points.
Elle rend également possible des constructions comme celle-ci :
if expression: action()
code_continues()
Notez (comme l'a fait un commentateur) que ce n'est pas exactement l'étalon-or brillant du bon style Python. Il serait bien mieux d'avoir un blanc, là :
if expression: action()
code_continues()
pour éviter toute confusion. Je voulais simplement préciser, avec le premier exemple, qu'il est possible d'écrire de cette manière, puisque le fait d'avoir le code de la fonction if
qui suit immédiatement le deux-points permet au compilateur de comprendre que la ligne suivante doit pas être en retrait.
Selon Guido Van Rossum, l'inventeur de Python, l'idée d'utiliser les deux points pour rendre la structure plus apparente s'inspire d'expériences antérieures avec un prédécesseur de Python, le langage ABC, qui visait également les débutants. Apparemment, lors de leurs premiers tests, les apprenants débutants ont progressé plus rapidement avec les deux points que sans eux. Lisez toute l'histoire sur le blog de Guido sur l'histoire de Python.
http://python-history.blogspot.com/2009/02/early-language-design-and-development.html
Et oui, les deux points sont utiles dans les phrases d'une ligne et sont moins gênants que le point-virgule. De même, le guide de style a longtemps recommandé la rupture sur plusieurs lignes uniquement lorsqu'elle se termine par un opérateur binaire.
x = (23 +
24 +
33)
L'ajout des deux-points a permis d'uniformiser le style de l'énoncé composé.
Il existe un encodage "sans colonne" pour CPython ainsi qu'un dialecte sans colonne, appelé cobra. Ceux-ci n'ont pas été détectés.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.