Pourquoi Python doit-il écrire un deux-points?

En Python, les instructions composées telles que if, for, def et class nécessitent un signe deux-points :.

if True:
    print('Hello, world!')

L'en-tête de chaque section commence par un mot clé d'identification unique et se termine par un deux-points. 8. instruction composée - référence du langage Python

Documentation officielle

La documentation officielle explique pourquoi vous devez écrire les deux-points :.

(Illusion) Personnellement ...

1. Langue ABC, etc.

Lorsque vous écrivez sur une ligne avec un point-virgule ; sur une ligne, c'est plus facile à comprendre. Pour le moment, ce serait assez déroutant sans «:».

def f(x): y = x + 1; z = y + 2; return z;

f(0)
>>> def f(x): y = x + 1; z = y + 2; return z;
... 
>>> f(0)
3
>>> 

Dans le document officiel, la méthode d'écriture en plusieurs lignes est donnée à titre d'exemple dans le discours sur le langage ABC, etc., mais je pense personnellement que le one-liner utilisant ce point-virgule ; était plus critique ( Je l'utilise rarement, mais lol).

C'est une phrase simple, mais je pense que c'est plus facile à comprendre s'il y a un deux-points : dans le cas d'une expression lambda.

g = lambda x: x + 1
g(0)
>>> g = lambda x: x + 1
>>> g(0)
1
>>> 

2. Analyse, etc.

J'ai utilisé des retraits au lieu de parenthèses pour regrouper des phrases. Par conséquent, n'est-il pas un peu strict de prétendre qu '"il est plus facile d'analyser si vous utilisez les deux points`: ʻuniquement au début"? Je pense personnellement.

(Illusion) Est-ce nécessaire?

N'avez-vous pas besoin de ces deux points ":"? Est souvent critiqué. Je ne pense pas non plus être honnête. C'est parce qu'il est rare d'écrire des phrases composées avec une seule doublure.

Python est maintenant assez polyvalent, mais avec l'esprit «vous n'avez pas besoin d'avoir tout ce que vous voulez», j'ai l'impression d'être prudent quant à l'ajout de nouvelles fonctionnalités. Je pense que cet esprit est clairement exprimé par les mots suivants de la PEP 20.

There should be one-- and preferably only one --obvious way to do it. PEP 20 -- The Zen of Python

Il peut être plus précis ici de dire "Je n'ai pas besoin de la capacité d'écrire en une seule ligne avec un point-virgule"; "plutôt que de ne pas avoir besoin de deux points": ".

J'ai pensé au processus d'écriture d'un deux-points, mais ... je veux être capable d'écrire avec un point-virgule ; même sur une seule ligne. Pour ce faire, vous devez écrire un signe deux-points :. Écrire ou ne pas écrire un deux-points : est incompatible avec et sans one-liner.

Special cases aren't special enough to break the rules. PEP 20 -- The Zen of Python

Alors, unissons en ajoutant un deux-points : Je me demande personnellement si c'était le cas.

Recommended Posts

Pourquoi Python doit-il écrire un deux-points?
Pourquoi le découpage Python est représenté par un deux-points (:)
Je veux écrire dans un fichier avec Python
Je veux écrire en Python! (2) Écrivons un test
Comment écrire un type liste / dictionnaire de Python3
[Python] Comment écrire une docstring conforme à PEP8
[Python] Un mémo pour écrire du CSV verticalement avec Pandas
Écrire du code dans UnitTest une application Web Python
Une route vers Python intermédiaire
Écrire en csv avec Python
Ecrire un programme python pour trouver la distance d'édition [python] [distance Levenshtein]
Comment écrire une classe méta qui prend en charge à la fois python2 et python3
[Python] Ecrire dans un fichier csv avec Python
Ecrire des algorithmes A * (A-star) en Python
Ecrire un graphique à secteurs en Python
Ecrire le plugin vim en Python
Écrire une recherche de priorité en profondeur en Python
5 façons de créer un chatbot Python
Ecrire un script batch avec Python3.5 ~
Un codec Python spécial qui semble savoir mais ne sait pas
[Python] J'ai fait un décorateur qui ne semble pas avoir d'utilité.
Qiita (1) Comment écrire un nom de code
[Python] Comment rendre une classe itérable
[Python] Comment convertir une liste bidimensionnelle en liste unidimensionnelle
Ecrire le test dans la docstring python
Super Introduction Arithmétique Bit Python
Comment écrire des commentaires de document Python (Docstrings)
Je veux créer un environnement Python
[Python] Comment inverser une chaîne de caractères
[Python] Créez un linebot pour écrire le nom et l'âge sur l'image
J'ai une question! (Python, django) Facile
Comment obtenir stacktrace en python
Ecrire un programme de chiffrement Caesar en Python
Ecrire une méthode de cupidité simple en Python
Ecrire un client TCP avec Python Twisted
Comment écrire une chaîne de caractères lorsqu'il y a plusieurs lignes en python
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 3 Écrire dans un fichier
Ecrire un plugin Vim simple en Python 3
[Introduction à Python] Comment écrire une chaîne de caractères avec la fonction format
Compressez les données python et écrivez sur sqlite
Créer un script shell pour écrire un journal
Comment écrire Ruby to_s en Python
Ajouter un environnement virtuel Python à VSCode
Comment exécuter des scripts Maya Python
[Python] Combiner des listes contenant des nombres en chaînes et les écrire dans un fichier de sortie
Recherche d'un moyen efficace d'écrire un Dockerfile avec Python avec de la poésie
Je n'ai pas eu besoin d'écrire décorateur en classe Merci contextmanager
Envoyer un message de Slack à un serveur Python
[Python] Compréhension de liste Différentes façons de créer une liste
Modifier Excel à partir de Python pour créer un tableau croisé dynamique
Comment lire un fichier CSV avec Python 2/3
Envoyer un message à LINE avec Python (LINE Notify)
Calculons en fait le problème statistique avec Python
Comment ouvrir un navigateur Web à partir de python
[Python] La route du serpent (4) Numpy