From 16f4948151c1473d870a0bc826a44ad4b60678cd Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Fri, 14 Feb 2020 22:23:52 +0100 Subject: Añadir correcciones de Esteban Manchado MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes !3 --- src/03_estructura.md | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/03_estructura.md b/src/03_estructura.md index 68dde35..9d8cd5e 100644 --- a/src/03_estructura.md +++ b/src/03_estructura.md @@ -81,7 +81,7 @@ A esto se le conoce como *control de flujo*. Las condicionales son herramientas de *control de flujo* que permiten separar la ejecución en diferentes ramas en función de unas condiciones. En python sólo -existe el condicional `if` (si, en castellano), aunque existen otras +existe el condicional `if` («si», en castellano), aunque existen otras estructuras para conseguir el mismo efecto, no las trataremos aún. Ésta es la sintaxis del `if`: @@ -93,8 +93,8 @@ elif condiciónN: # Este bloque (opcional) se ejecuta si las condiciones previas no se # cumplen y la condiciónN sí se cumple else: - # Este bloque (opcional) se ejecuta si todas las condiciones previas no - # se cumplen + # Este bloque (opcional) se ejecuta si no se cumplen todas las condiciones + # previas ``` Tal y como se muestra en el ejemplo, los bloques `elif` y el bloque `else` son @@ -115,7 +115,7 @@ no, lo que deciden es si es necesario repetirla en función de una condición. ##### While -El `while` (mientras que) es la más sencilla de estas estructuras, y la menos +El `while` («mientras que») es la más sencilla de estas estructuras, y la menos usada. ``` python @@ -131,7 +131,7 @@ Es decir, ejecuta el bloque *mientras que* la condición se cumple. ##### For -Los bucles *for* (para) son los más complejos y más usados, +Los bucles *for* («para») son los más complejos y más usados, ``` python for preparación: @@ -214,6 +214,10 @@ Como mejor se entiende es con unos ejemplos, en este caso vamos usar la función `range` para crear una lista de números del `0` (inclusive) al `10` (no inclusive). Usando la ayuda puedes saber más sobre la función `range`. + +> TODO: +> Mejorar este ejemplo, es demasiado simple + ``` python >>> [i**2 for i in range(0, 10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] @@ -236,8 +240,8 @@ secuencia de números al cuadrado. Pero las *list comprehensions* son más poderosas que eso, pudiendo a llegar a complicarse sobremanera añadiendo condiciones, como en el último de los ejemplos, para filtrar algunos casos. -Te habrá mosqueado el uso de `tuple` para crear la tupla. Todo tiene una razón, -la tupla, al estar formada por paréntesis, python no tiene claro si son +Te habrá mosqueado el uso de `tuple` para crear la tupla. Todo tiene una razón. +La tupla, al estar formada por paréntesis, python no tiene claro si son paréntesis de precedencia o de creación de tupla, y considera que son los primeros, dando como resultado un generador, un paso intermedio de nuestro proceso que dejamos para el futuro. @@ -266,7 +270,7 @@ sabiendas que nuestro programa terminará indicando un error. Hay ocasiones en las que las excepciones pueden capturarse y otras no, por ejemplo, los fallos de sintaxis no pueden solventarse. -Las excepciones se capturan en con un `try-except` que, si programas en otros +Las excepciones se capturan con un `try-except` que, si programas en otros lenguajes como Java, probablemente conozcas como `try-catch`. ```python @@ -288,7 +292,7 @@ Además de capturarse, las excepciones pueden lanzarse con la sentencia `raise`. ``` python if not input: - raise ValueError("Not valid input") + raise ValueError("Invalid input") ``` Si el ejemplo anterior se diera dentro de una pieza de código que no podemos @@ -325,8 +329,8 @@ encuentra en nuestro programa. Las funciones sirven, sobre todo, para reutilizar código. Si una pieza de código se utiliza en más de una ocasión en tu programa, es una buena candidata -para agruparse en una función y poder reutilizarla sin necesidad de copiar y -pegar el código fuente. Aunque sirven para más fines y tienen detalles que +para agruparse en una función y poder reutilizarla sin necesidad de duplicar +el código fuente. Aunque sirven para más fines y tienen detalles que aclararemos en un capítulo propio, en este apartado adelantaremos cómo se definen y cómo lanzan y posteriormente las analizaremos en detalle. @@ -511,7 +515,7 @@ en muchas ocasiones. Es difícil resumir todo lo que has aprendido en este capítulo porque, la verdad es que es mucha información. Pero no pasa nada porque este capítulo se ha -creado más como referencia que como otra cosa. No tengas miedo en volver a +creado más como referencia que como otra cosa. No tengas miedo a volver a leerlo todas las veces que necesites. A todos se nos olvida cómo hay que declarar las funciones si llevamos mucho tiempo sin tocar python, o si era `try-catch` o `try-except`. Este capítulo pretende, por un lado, darte una @@ -538,7 +542,7 @@ Las sentencias útiles que hemos recopilado al final permiten juguetear con todas las estructuras que hemos definido en el capítulo de modo que puedas usarlas a tu antojo de forma cómoda. Algunas de ellas como `continue` y `break` no son realmente necesarias, puede programarse evitándolas y, de hecho, en -algunos lugares enseñan a no usarlas como si de una buena práctica se tratara +algunos lugares enseñan a no usarlas, como si de una buena práctica se tratara, cambiando las condiciones de los bucles para que hagan esta labor. En este documento se muestran porque, en primer lugar, si lees código escrito por otras personas las encontrarás y tendrás que entender qué hacen y, en segundo, porque -- cgit v1.2.3