Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions episodes/01-run-quit.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ exercises: 0

Para ejecutar Python, vamos a utilizar [Jupyter Notebooks][jupyter] a través de
[JupyterLab][jupyterlab] para el resto de este taller. Los cuadernos Jupyter son comunes
en la ciencia de datos y visualización y sirven como una experiencia conveniente para
en la ciencia de datos y visualización, y sirven como una experiencia conveniente para
ejecutar código Python de forma interactiva donde podemos ver y compartir fácilmente los
resultados de nuestro código Python.

Expand All @@ -41,11 +41,11 @@ código Python inmediatamente dentro del cuaderno.
JupyterLab tiene otras funciones muy útiles:

- Puedes escribir, editar y copiar y pegar fácilmente bloques de código.
- Pestaña completa te permite acceder fácilmente a los nombres de las cosas que estás
- En pestaña completa te permite acceder fácilmente a los nombres de las cosas que estás
utilizando y aprender más sobre ellas.
- Te permite anotar tu código con enlaces, texto de distinto tamaño, viñetas, etc. para
hacerlo más accesible a ti y a tus colaboradores.
- Le permite mostrar figuras junto al código que las produce para contar una historia
- Te permite mostrar figuras junto al código que las produce para contar una historia
completa del análisis.

Cada cuaderno contiene una o más celdas que contienen código, texto o imágenes.
Expand Down Expand Up @@ -76,7 +76,7 @@ descargar e instalar Anaconda y JupyterLab

::::::::::::::::::::::::::::::::::::::::: callout

## JupyterLab? ¿Y para los cuadernos Jupyter?
## ¿JupyterLab? ¿Y para los cuadernos Jupyter?

JupyterLab es la [siguiente etapa en la evolución del Jupyter
Notebook](https://jupyterlab.readthedocs.io/en/stable/getting_started/overview.html#overview).
Expand Down Expand Up @@ -235,7 +235,7 @@ archivos de texto, etc.) y otras actividades (terminales, consolas de código, e
paneles de pestañas que se pueden redimensionar o subdividir. A continuación se muestra
una captura de pantalla del Área de trabajo principal por defecto.

Si no ves la pestaña Lanzador, haz clic en el signo más azul bajo los menús "Archivo" y
Si no ves la pestaña Launcher, haz clic en el signo más azul bajo los menús "Archivo" y
"Editar" y aparecerá.

<p align='center'> <img alt="JupyterLab Main Work Area" src="fig/0_jupyterlab_main_work_area.png" width="750"/>
Expand All @@ -250,21 +250,21 @@ defecto).
## Creación de un script Python

- Para empezar a escribir un nuevo programa Python haz clic en el icono Archivo de Texto
bajo la cabecera *Otros* en la pestaña Lanzador del Área de Trabajo Principal.
- También puede crear un nuevo archivo de texto sin formato seleccionando *Nuevo ->
Archivo de texto* en el menú *Archivo* de la barra de menús.
bajo la cabecera *Others* en la pestaña Lanzador del Área de Trabajo Principal.
- También puede crear un nuevo archivo de texto sin formato seleccionando *New ->
Textfile* en el menú *File* de la barra de menús.
- Para convertir este archivo de texto plano en un programa Python, selecciona la acción
*Guardar Archivo Como* del menú *Archivo* en la Barra de Menú y dale a tu nuevo
*Save file as* del menú *File* en la Barra de Menú y dale a tu nuevo
archivo de texto un nombre que termine con la extensión `.py`.
- La extensión `.py` permite a todo el mundo (incluido el sistema operativo) saber que
este archivo de texto es un programa Python.
- Esto es una convención, no un requisito.

## Crear un cuaderno Jupyter

Para abrir un nuevo cuaderno haz clic en el icono Python 3 bajo la cabecera *Cuaderno*
Para abrir un nuevo cuaderno haz clic en el icono Python 3 bajo la cabecera *Notebook*
en la pestaña Lanzador del área de trabajo principal. También puedes crear un nuevo
cuaderno seleccionando *Nuevo -> Cuaderno* en el menú *Archivo* de la Barra de Menús.
cuaderno seleccionando *New -> Notebook* en el menú *File* de la Barra de Menús.

Notas adicionales sobre los cuadernos Jupyter.

Expand Down Expand Up @@ -341,7 +341,7 @@ humanos.

- Si pulsa <kbd>Esc</kbd> y <kbd>Return</kbd> alternativamente, el borde exterior de su
celda de código cambiará de gris a azul.
- Estos son los modos **Comando** (gris) y **Edición** (azul) de tu bloc de notas.
- Estos son los modos **Command/Comando** (gris) y **Edit/Edición** (azul) de tu bloc de notas.
- El modo Comando te permite editar las características del cuaderno, y el modo Edición
cambia el contenido de las celdas.
- En modo Comando (esc/gris),
Expand Down Expand Up @@ -387,7 +387,7 @@ tu celda es azul). Escriba <kbd>z</kbd>.
- Como queremos poder escribir muchas líneas de código en una sola celda, al pulsar la
tecla <kbd>Retorno</kbd> cuando se está en modo Edición (azul) se mueve el cursor a la
siguiente línea de la celda, igual que en un editor de texto.
- Necesitamos alguna otra forma de decirle al Cuaderno que queremos ejecutar lo que hay
- Necesitamos alguna otra forma de decirle al Notebook que queremos ejecutar lo que hay
en la celda.
- Al pulsar conjuntamente <kbd>Mayús</kbd>\+<kbd>Retorno</kbd> se ejecutará el contenido
de la celda.
Expand Down Expand Up @@ -592,7 +592,7 @@ comandos LaTeX para los símbolos "suma sobre" y "aproxima".

## Cerrar JupyterLab

- En la barra de menús, seleccione el menú "Archivo" y, a continuación, elija "Apagar"
- En la barra de menús, seleccione el menú "File" y, a continuación, elija "Shut down"
en la parte inferior del menú desplegable. Se le pedirá que confirme que desea apagar
el servidor JupyterLab (¡no olvide guardar su trabajo!). Haga clic en "Shut Down" para
apagar el servidor JupyterLab.
Expand Down Expand Up @@ -626,7 +626,7 @@ https://jupyterlab.readthedocs.io/en/stable/user/notebook.html

- Los scripts de Python son archivos de texto sin formato.
- Utiliza el Jupyter Notebook para editar y ejecutar Python.
- El Cuaderno dispone de los modos Comando y Edición.
- El Notebook dispone de los modos Command y Edition.
- Utilizar el teclado y el ratón para seleccionar y editar celdas.
- El Cuaderno convertirá Markdown en documentación con una bonita impresión.
- Markdown hace la mayor parte de lo que hace HTML.
Expand Down
2 changes: 1 addition & 1 deletion episodes/03-types-conversion.md
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ print(type(3.4))

## Solución

Es un flotador: los enteros se convierten automáticamente en flotadores cuando es
Es un float: los enteros se convierten automáticamente en floats cuando es
necesario.

```python
Expand Down
16 changes: 8 additions & 8 deletions episodes/04-built-in.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,13 +137,13 @@ round(3.712, 1)
doble subrayado.

```python
my_string = 'Hello world!' # creation of a string object
my_string = 'Hello world!' # creación de un string

print(len(my_string)) # the len function takes a string as an argument and returns the length of the string
print(len(my_string)) # la función len toma un string y devuelve la longitud del string

print(my_string.swapcase()) # calling the swapcase method on the my_string object
print(my_string.swapcase()) # llamada al método swapcase de mi objeto my_string

print(my_string.__len__()) # calling the internal __len__ method on the my_string object, used by len(my_string)
print(my_string.__len__()) # llamando al método interno __len__ en el objeto my_string, usado por len(my_string)

```

Expand All @@ -156,10 +156,10 @@ hELLO WORLD!
- Incluso puede verlos encadenados. Funcionan de izquierda a derecha.

```python
print(my_string.isupper()) # Not all the letters are uppercase
print(my_string.upper()) # This capitalizes all the letters
print(my_string.isupper()) # no todas las letras son mayúsculas
print(my_string.upper()) # esto lo convierte todo a mayúsculas

print(my_string.upper().isupper()) # Now all the letters are uppercase
print(my_string.upper().isupper()) # ahora son todo mayúsculas
```

```output
Expand Down Expand Up @@ -200,7 +200,7 @@ round(number, ndigits=None)
- Ni siquiera intentará ejecutar el programa si no puede ser analizado.

```python
# Forgot to close the quote marks around the string.
# Olvidamos cerrar la comilla
name = 'Feng
```

Expand Down
94 changes: 47 additions & 47 deletions episodes/06-libraries.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
---
title: Bibliotecas
title: Librerías
teaching: 10
exercises: 10
---


::::::::::::::::::::::::::::::::::::::: objectives

- Explicar qué son las bibliotecas de software y por qué los programadores las crean y
- Explicar qué son las librerías de software y por qué los programadores las crean y
utilizan.
- Escribir programas que importen y utilicen módulos de la biblioteca estándar de
- Escribir programas que importen y utilicen módulos de la librería estándar de
Python.
- Buscar y leer documentación de la biblioteca estándar de forma interactiva (en el
- Buscar y leer documentación de la librería estándar de forma interactiva (en el
intérprete) y en línea.

::::::::::::::::::::::::::::::::::::::::::::::::::
Expand All @@ -23,37 +23,37 @@ exercises: 10

::::::::::::::::::::::::::::::::::::::::::::::::::

## La mayor parte de la potencia de un lenguaje de programación está en sus bibliotecas.
## La mayor parte de la potencia de un lenguaje de programación está en sus librerías.

- Una *biblioteca* es una colección de ficheros (llamados *módulos*) que contienen
- Una *librería* es una colección de ficheros (llamados *módulos*) que contienen
funciones para ser usadas por otros programas.
- También puede contener valores de datos (por ejemplo, constantes numéricas) y otras
cosas.
- Se supone que los contenidos de la biblioteca están relacionados, pero no hay forma
- Se supone que los contenidos de la librería están relacionados, pero no hay forma
de hacer cumplir esto.
- La [biblioteca estándar][stdlib] de Python es un extenso conjunto de módulos que
- La [librería estándar][stdlib] de Python es un extenso conjunto de módulos que
vienen con el propio Python.
- Muchas bibliotecas adicionales están disponibles en [PyPI][pypi] (the Python Package
- Muchas librerías adicionales están disponibles en [PyPI][pypi] (the Python Package
Index).
- Veremos más adelante cómo escribir nuevas bibliotecas.
- Veremos más adelante cómo escribir nuevas librerías.

::::::::::::::::::::::::::::::::::::::::: callout

## Bibliotecas y módulos
## librerías y módulos

Una biblioteca es una colección de módulos, pero a menudo los términos se usan
indistintamente, especialmente porque muchas bibliotecas sólo consisten en un único
Una librería es una colección de módulos, pero a menudo los términos se usan
indistintamente, especialmente porque muchas librerías sólo consisten en un único
módulo, así que no te preocupes si los mezclas.


::::::::::::::::::::::::::::::::::::::::::::::::::

## Un programa debe importar un módulo de biblioteca antes de usarlo.
## Un programa debe importar un módulo de librería antes de usarlo.

- Utilice `import` para cargar un módulo de biblioteca en la memoria de un programa.
- Utilice `import` para cargar un módulo de librería en la memoria de un programa.
- Luego refiérase a cosas del módulo como `module_name.thing_name`.
- Python usa `.` para significar "parte de".
- Usando `math`, uno de los módulos de la biblioteca estándar:
- Usando `math`, uno de los módulos de la librería estándar:

```python
import math
Expand All @@ -71,7 +71,7 @@ cos(pi) is -1.0
- `math.cos(pi)` no funciona: la referencia a `pi` no "hereda" de algún modo la
referencia de la función a `math`.

## Utilice `help` para conocer el contenido de un módulo de biblioteca.
## Utilice `help` para conocer el contenido de un módulo de librería.

- Funciona igual que la ayuda para una función.

Expand Down Expand Up @@ -104,11 +104,11 @@ FUNCTIONS
⋮ ⋮ ⋮
```

## Importar elementos específicos de un módulo de biblioteca para acortar programas.
## Importar elementos específicos de un módulo de librería para acortar programas.

- Utilice `from ... import ...` para cargar sólo elementos específicos de un módulo de
biblioteca.
- Luego refiérase a ellos directamente sin el nombre de la biblioteca como prefijo.
librería.
- Luego refiérase a ellos directamente sin el nombre de la librería como prefijo.

```python
from math import cos, pi
Expand All @@ -120,10 +120,10 @@ print('cos(pi) is', cos(pi))
cos(pi) is -1.0
```

## Crear un alias para un módulo de biblioteca al importarlo para acortar programas.
## Crear un alias para un módulo de librería al importarlo para acortar programas.

- Utilice `import ... as ...` para dar un *alias* corto a una biblioteca al importarla.
- A continuación, haga referencia a los elementos de la biblioteca utilizando ese nombre
- Utilice `import ... as ...` para dar un *alias* corto a una librería al importarla.
- A continuación, haga referencia a los elementos de la librería utilizando ese nombre
abreviado.

```python
Expand All @@ -136,7 +136,7 @@ print('cos(pi) is', m.cos(m.pi))
cos(pi) is -1.0
```

- Comúnmente utilizado para bibliotecas de uso frecuente o con nombres largos.
- Comúnmente utilizado para librerías de uso frecuente o con nombres largos.
- Por ejemplo, la librería de ploteo `matplotlib` a menudo tiene el alias `mpl`.
- Pero puede hacer que los programas sean más difíciles de entender, ya que los lectores
deben aprender los alias de su programa.
Expand All @@ -147,7 +147,7 @@ cos(pi) is -1.0

1. ¿Qué función del módulo `math` puedes usar para calcular una raíz cuadrada *sin* usar
`sqrt`?
2. Dado que la biblioteca contiene esta función, ¿por qué existe `sqrt`?
2. Dado que la librería contiene esta función, ¿por qué existe `sqrt`?

::::::::::::::: solution

Expand All @@ -161,7 +161,7 @@ cos(pi) is -1.0
programación, por lo que tiene sentido proporcionar una función especial para este
caso común específico.

Además, el diseño de la biblioteca `math` de Python tiene su origen en el estándar C,
Además, el diseño de la librería `math` de Python tiene su origen en el estándar C,
que incluye tanto `sqrt(x)` como `pow(x,y)`, por lo que un poco de la historia de la
programación se muestra en los nombres de las funciones de Python.

Expand All @@ -181,7 +181,7 @@ Desea seleccionar un carácter aleatorio de una cadena:
bases = 'ACTTGCTTGAC'
```

1. ¿Qué módulo de [biblioteca estándar][stdlib] podría ayudarle?
1. ¿Qué módulo de [librería estándar][stdlib] podría ayudarle?
2. ¿Qué función seleccionarías de ese módulo? ¿Existen alternativas?
3. Intenta escribir un programa que utilice la función.

Expand Down Expand Up @@ -344,9 +344,9 @@ cuando hay convenciones claras de abreviación.

::::::::::::::::::::::::::::::::::::::: challenge

## ¡Hay Muchas Formas De Importar Bibliotecas!
## ¡Hay Muchas Formas De Importar Librerías!

Empareja las siguientes sentencias de impresión con las llamadas a biblioteca
Empareja las siguientes sentencias de impresión con las llamadas a librería
apropiadas.

Comandos de impresión:
Expand All @@ -355,7 +355,7 @@ Comandos de impresión:
2. `print("sin(pi/2) =", m.sin(m.pi/2))`
3. `print("sin(pi/2) =", math.sin(math.pi/2))`

Llamadas a bibliotecas:
Llamadas a librerías:

1. `from math import sin, pi`
2. `import math`
Expand All @@ -366,24 +366,24 @@ Llamadas a bibliotecas:

## Solución

1. Llamadas a las bibliotecas 1 y 4. Para referirse directamente a `sin` y `pi` sin el
nombre de la biblioteca como prefijo, es necesario utilizar la sentencia `from ...
import ...`. Mientras que la llamada a biblioteca 1 importa específicamente las dos
funciones `sin` y `pi`, la llamada a biblioteca 4 importa todas las funciones del
1. Llamadas a las librerías 1 y 4. Para referirse directamente a `sin` y `pi` sin el
nombre de la librería como prefijo, es necesario utilizar la sentencia `from ...
import ...`. Mientras que la llamada a librería 1 importa específicamente las dos
funciones `sin` y `pi`, la llamada a librería 4 importa todas las funciones del
módulo `math`.
2. Llamada a la biblioteca 3. Aquí se hace referencia a `sin` y `pi` con un nombre de
biblioteca abreviado `m` en lugar de `math`. La llamada a biblioteca 3 hace
2. Llamada a la librería 3. Aquí se hace referencia a `sin` y `pi` con un nombre de
librería abreviado `m` en lugar de `math`. La llamada a librería 3 hace
exactamente eso utilizando la sintaxis `import ... as ...` - crea un alias para
`math` con el nombre abreviado `m`.
3. Llamada a la biblioteca 2. Aquí se hace referencia a `sin` y `pi` con el nombre de
biblioteca normal `math`, por lo que basta con la llamada normal `import ...`.
3. Llamada a la librería 2. Aquí se hace referencia a `sin` y `pi` con el nombre de
librería normal `math`, por lo que basta con la llamada normal `import ...`.

**Nota:** aunque la llamada a biblioteca 4 funciona, importar todos los nombres de un
**Nota:** aunque la llamada a librería 4 funciona, importar todos los nombres de un
módulo usando una importación comodín [no es recomendable][pep8-imports] ya que hace que
no quede claro qué nombres del módulo se usan en el código. En general, es mejor hacer
las importaciones tan específicas como sea posible y sólo importar lo que el código
utiliza. En la llamada a biblioteca 1, la sentencia `import` nos dice explícitamente que
la función `sin` es importada del módulo `math`, pero la llamada a biblioteca 4 no
utiliza. En la llamada a librería 1, la sentencia `import` nos dice explícitamente que
la función `sin` es importada del módulo `math`, pero la llamada a librería 4 no
transmite esta información.


Expand Down Expand Up @@ -420,7 +420,7 @@ Lo más probable es que encuentres esta versión más fácil de leer ya que es m
La principal razón para no utilizar esta forma de importación es evitar conflictos de
nombres. Por ejemplo, no importaría `degrees` de esta forma si también quisiera usar el
nombre `degrees` para una variable o función propia. O si también importaras una función
llamada `degrees` de otra biblioteca.
llamada `degrees` de otra librería.



Expand Down Expand Up @@ -472,11 +472,11 @@ ValueError: math domain error

:::::::::::::::::::::::::::::::::::::::: keypoints

- La mayor parte de la potencia de un lenguaje de programación está en sus bibliotecas.
- Un programa debe importar un módulo de biblioteca para poder utilizarlo.
- Utilice `help` para conocer el contenido de un módulo de biblioteca.
- Importa elementos específicos de una biblioteca para acortar programas.
- Crea un alias para una biblioteca al importarla para acortar programas.
- La mayor parte de la potencia de un lenguaje de programación está en sus librerías.
- Un programa debe importar un módulo de librería para poder utilizarlo.
- Utilice `help` para conocer el contenido de un módulo de librería.
- Importa elementos específicos de una librería para acortar programas.
- Crea un alias para una librería al importarla para acortar programas.

::::::::::::::::::::::::::::::::::::::::::::::::::

Expand Down
Loading
Loading