una - ¿Cuál es el propósito del colon antes de un bloqueo en Python?
mostrar resultados en python (4)
¿Cuál es el propósito del colon antes de un bloqueo en Python?
Ejemplo:
if n == 0:
print "The end"
Tres razones:
- Para aumentar la legibilidad El dos puntos ayuda a que el código fluya al siguiente bloque sangrado.
- Para ayudar a los editores de texto / IDE, pueden sangrar automáticamente la siguiente línea si la línea anterior finalizó con dos puntos.
- Para hacer el análisis por Python un poco más fácil.
Considere la siguiente lista de cosas para comprar en la tienda de comestibles, escrita en Pewprikanese.
pewkah
lalala
chunkykachoo
pewpewpew
skunkybacon
Cuando leo eso, estoy confundido, ¿Son chunkykachoo y pewpewpew una especie de lalala? ¿O qué pasa si chunkykachoo y pewpewpew están sangrados solo porque son objetos especiales?
Ahora vea qué sucede cuando mi amigo de Pewprikanese agrega un dos puntos para ayudarme a analizar mejor la lista: (<- como este)
pewkah
lalala: (<-- see this colon)
chunkykachoo
pewpewpew
skunkybacon
Ahora está claro que chunkykachoo y pewpewpew son una especie de lalala.
Digamos que hay una persona que está empezando a aprender Python, que es su primer lenguaje de programación para aprender. Sin dos puntos, hay una probabilidad considerable de que ella siga pensando "estas líneas están sangradas porque estas líneas son como elementos especiales", y podría tomar un tiempo darse cuenta de que esa no es la mejor manera de pensar en la indentación.
Hasta donde yo sé, es un diseño intencional para hacerlo más obvio, que el lector debe esperar una sangría después del colon.
También hace posibles construcciones como esta:
if expression: action()
code_continues()
Tenga en cuenta (como lo hizo un comentarista) que este no es exactamente el estándar dorado brillante del buen estilo de Python. Sería mucho mejor tener un espacio en blanco, allí:
if expression: action()
code_continues()
para evitar confusión. Solo quería dejar en claro, con el primer ejemplo, que es posible escribir así, ya que tener el código para el if
inmediatamente después de dos puntos hace posible que el compilador comprenda que la próxima línea no debe sangrarse.
El colon está allí para declarar el inicio de un bloque sangrado.
Técnicamente, no es necesario; solo puede sangrar y eliminar el guión cuando termina el bloqueo. Sin embargo, basado en el koan de Python "explícito es mejor que implícito" (EIBTI), creo que Guido hizo deliberadamente obligatorio el colon, por lo que cualquier declaración que deba seguir el código sangrado termina en dos puntos. (También permite frases sencillas si continúa después de los dos puntos, pero este estilo no tiene un amplio uso).
También facilita el trabajo de los editores de autodegradación con reconocimiento de sintaxis, lo que también cuenta en la decisión.
Esta pregunta resulta ser una pregunta frecuente de Python , y encontré una de sus respuestas por parte de Guido aquí :
¿Por qué se requieren dos puntos para las declaraciones if / while / def / class?
El colon se requiere principalmente para mejorar la legibilidad (uno de los resultados del lenguaje ABC experimental). Considera esto:
if a == b print a
versus
if a == b: print a
Observe cómo el segundo es un poco más fácil de leer. Observe además cómo un dos puntos establece el ejemplo en esta respuesta de preguntas frecuentes; es un uso estándar en inglés.
Otra razón menor es que el colon facilita a los editores con resaltado de sintaxis; pueden buscar dos puntos para decidir cuándo se debe aumentar la indentación en lugar de tener que realizar un análisis más detallado del texto del programa.