From c3a0a74c059ac7790008e7325567317435d0c7f8 Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Wed, 22 Jul 2020 14:20:07 +0200 Subject: Corrections in first chapters --- es/02_datos.md | 96 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 49 insertions(+), 47 deletions(-) (limited to 'es/02_datos.md') diff --git a/es/02_datos.md b/es/02_datos.md index 8400737..48c802c 100644 --- a/es/02_datos.md +++ b/es/02_datos.md @@ -16,11 +16,11 @@ Al igual que en las matemáticas se utilizan los símbolos para representar posibles valores y simplificar los procesos, en los lenguajes de programación se utilizan símbolos para definir referencias a los datos y así poder referirse a los mismos datos por su nombre sin tener que introducir su contenido -constantemente. Los lenguajes de programación aportan al programador la +constantemente. Los lenguajes de programación aportan a quien programa la facilidad de poder crear sus propios nombres para no tener que usar las direcciones propias de la memoria, que normalmente son número sin más -significado que su posición, la mayor parte de las veces permitiendo al -programador abstraerse de estos detalles internos. +significado que su posición, la mayor parte de las veces permitiendo a quien +programa abstraerse de estos detalles internos. En python existe un operador para declarar símbolos que hacen referencia a un valor: el operador `=`. Este operador enlaza el valor de la derecha con el @@ -197,11 +197,10 @@ ejemplo, `2.999999999`, cuando debería ser `3.0`) y compararlos entre ellos puede ser desastroso. Para evitarlo, te recomiendo que *siempre* redondees los valores a una precisión que puedas controlar. -Aunque realmente es algo más complejo[^1], lo que sabes ahora te evitará -problemas en el futuro, sobre todo cuando analices datos, uno de los sectores -donde python se usa de forma extensiva. - -[^1]: +Aunque realmente es algo más complejo, lo que sabes ahora te evitará problemas +en el futuro, sobre todo cuando analices datos, uno de los sectores donde +python se usa de forma extensiva. Si necesitas saber más, debes investigar la +artimética de coma flotante, o *floating point arithmetic* en inglés. Declarar números de coma flotante es natural porque usa una sintaxis a la que estamos acostumbrados: @@ -263,14 +262,12 @@ SyntaxError: invalid syntax ``` > NOTA: la contrabarra sirve para introducir caracteres especiales o caracteres -> de escape[^2]: `\n` salto de línea, `\t` tabulador, etc. Que son una herencia -> de los tiempos de las máquinas de escribir, pero son aún útiles y muy usados. +> de escape: `\n` salto de línea, `\t` tabulador, etc. Que son una herencia de +> los tiempos de las máquinas de escribir, pero son aún útiles y muy usados. > Para expresar la propia contrabarra ha de escaparse a sí misma con otra > contrabarra para que no evalúe el siguiente caracter como un caracter de > escape.: `\\`. -[^2]: - ### Tipos compuestos @@ -301,7 +298,7 @@ En python los índices comienzan en `0`. Las listas o *list* son muy similares a las tuplas, pero son algo más complejas porque pueden alterarse así mismas. A diferencia de todos los tipos que hemos visto hasta ahora, tanto las listas como los diccionarios que veremos a -continuación son mutables. Esto significa que puede transformarse su valor, más +continuación son mutables. Esto significa que puede transformarse su valor. Más adelante trataremos esto en detalle. De momento, recuerda que las listas se construyen de forma similar a las @@ -319,7 +316,7 @@ los índices es idéntica. Los diccionarios o *dictionary* son un tipo de dato similar a los dos anteriores, pero que en lugar de utilizar índices basados en la posición de sus -elementos usan claves arbitrarias definidas por el usuario. +elementos usan claves arbitrarias definidas por quien programa. Además, los diccionarios no están ordenados así que no se puede suponer que las claves siempre van a estar en el orden en el que se introducen. @@ -379,8 +376,9 @@ intersecciones (*intersection*) y otros métodos descritos en esta teoría. ## Conversión Ahora que conoces los valores sé que quieres saber cómo cambiar de uno a otro. -Cómo leer un Integer desde un String etc. Python tiene funciones para construir -sus diferentes tipos de datos a partir de los diferentes inputs posibles. +Cómo leer un Integer desde un String, etc. Python tiene funciones para +construir sus diferentes tipos de datos a partir de los diferentes inputs +posibles. Aunque aún no sabes ejecutar funciones te adelanto cómo se hace con algunos ejemplos: @@ -427,9 +425,9 @@ cuenta la ayuda. Ahora que sabes el contexto en el que vas a jugar, necesitas poder alterar los datos. -Existen operadores básicos que te permiten transformar los datos, algunos ya -los has visto antes, el operador `=`, que sirve para nombrar cosas, la suma -(`+`) o la resta (`-`), pero hay otros. +Existen operadores básicos que te permiten transformar los datos. Algunos ya +los has visto antes, como el operador `=`, que sirve para nombrar cosas, la +suma (`+`) o la resta (`-`), pero hay otros. ``` python >>> 1 + 1 @@ -450,18 +448,18 @@ memorizar. Las pruebas de verdad generan un valor booleano desde una pareja de valores. A continuación una lista de las pruebas de verdad con unos ejemplos: -| operator | meaning | -|---|---| -| < | strictly less than | -| <= | less than or equal | -| > | strictly greater than | -| >= | greater than or equal | -| == | equal | -| != | not equal | -| is | object identity | -| is not | negated object identity | -| in | containment test | -| not in | negated containment test | +| operador | significado | +|----------|-------------------------------------------| +| `<` | menor que | +| `<=` | menor o igual que | +| `>` | mayor que | +| `>=` | mayor o igual que | +| `==` | igual que | +| `!=` | diferente de | +| `is` | identidad de objetos: «es» | +| `is not` | identidad negada: «no es» | +| `in` | comprobación de contenido: «en» | +| `not in` | comprobación de contenido negada: «no en» | ``` python >>> 1 > 1 @@ -486,11 +484,11 @@ True Los operadores lógicos mezclan booleanos y son muy importantes, sobre todo para combinar las pruebas de verdad. -| operator | meaning | -|---|---| -| and | logical and, returns True if both True, False otherwise | -| or | logical or, returns True if any True, False otherwise | -| not | logical not, returns True if False, True otherwise | +| operador | significado | +|----------|----------------------------------------------------------| +| `and` | «Y» lógico, es `True` si todos sus operandos son `True` | +| `or` | «O» lógico, es `True` si algún operando es `True` | +| `not` | «No» lógico, invierte el operando | La mayor parte de los operadores son binarios (como la suma), necesitan dos valores y devuelven otro, pero existe al menos una excepción que funciona con @@ -514,16 +512,16 @@ True Los operadores matemáticos transforman números entre ellos. Casi todos son conocidos por su operación matemática. -| operator | meaning | -|---|---| -| + | addition | -| - | subtraction or negative | -| `*` | multiplication | -| / | division | -| `**` | power | -| % | remainder | +| operador | significado | +|----------|----------| +| `+` | Suma | +| `-` | Negativo o resta| +| `*` | Multiplicación | +| `/` | División | +| `**` | Potencia | +| `%` | Resto | -### Ternary operator +### Operador ternario Existe además un operador que puede usar tres parámetros, el *inline-if* (*if en línea*), o *ternary operator*[^ternary]. El *ternary operator* se comporta @@ -536,7 +534,11 @@ así: 1 ``` -[^ternary]: +[^ternary]: En realidad, el nombre de operador ternario no indica nada más que + el hecho de que use tres argumentos. Históricamente se ha usado este nombre + para este operador en concreto, que en otros lenguajes aparece con la forma + `condición ? resultado1 : resultado2`, porque no solía existir ningún otro + operador que recibiera tres argumentos. ### Operación en función del tipo @@ -604,7 +606,7 @@ lado derecho completo obteniendo un 20 y después se asigna la referencia `b` a ese valor. Si queremos, después podemos reasignar el símbolo `a` a otro valor nuevo, en -este caso al que hacer referencia `b` que es 20. +este caso al que hacer referencia `b`, que es 20. En este primer ejemplo, ningún valor está siendo alterado, si te fijas, sólo estamos creando nuevos valores y cambiando las referencias a éstos. -- cgit v1.2.3