summaryrefslogtreecommitdiff
path: root/es/02_datos.md
diff options
context:
space:
mode:
Diffstat (limited to 'es/02_datos.md')
-rw-r--r--es/02_datos.md96
1 files changed, 49 insertions, 47 deletions
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]: <https://en.wikipedia.org/wiki/Floating-point_arithmetic>
+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]: <https://en.wikipedia.org/wiki/Escape_character>
-
### 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]: <https://en.wikipedia.org/wiki/%3F:#Python>
+[^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.