Skip to content

Commit 4d45910

Browse files
committed
Agregando las katas resueltas 1-6
1 parent 18c2cf2 commit 4d45910

File tree

1,180 files changed

+223211
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,180 files changed

+223211
-0
lines changed
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"metadata": {},
6+
"source": [
7+
"# Ejercicio: crea y ejecuta tu notebook\n",
8+
"\n",
9+
"Primero instalamos la biblioteca:"
10+
]
11+
},
12+
{
13+
"cell_type": "code",
14+
"execution_count": null,
15+
"metadata": {},
16+
"outputs": [],
17+
"source": [
18+
"pip install ipywidgets"
19+
]
20+
},
21+
{
22+
"cell_type": "code",
23+
"execution_count": null,
24+
"metadata": {},
25+
"outputs": [],
26+
"source": [
27+
"import ipywidgets as widgets\n",
28+
"\n",
29+
"ignition = widgets.ToggleButton(\n",
30+
" value=False,\n",
31+
" description='Iniciar Launch',\n",
32+
" button_style='success',\n",
33+
" tooltip='Engage your Launch',\n",
34+
" icon='rocket'\n",
35+
")\n",
36+
"\n",
37+
"output = widgets.Output()\n",
38+
"\n",
39+
"display(ignition, output)\n",
40+
"\n",
41+
"def on_value_change(change):\n",
42+
" with output:\n",
43+
" if change['new'] == True:\n",
44+
" print(\"Nave Iniciada!\")\n",
45+
" else: \n",
46+
" print(\"Nave Detenida\")\n",
47+
"\n",
48+
"ignition.observe(on_value_change, names='value')"
49+
]
50+
},
51+
{
52+
"cell_type": "markdown",
53+
"metadata": {},
54+
"source": [
55+
"## Ejercicio 2: Usar comandos avanzados"
56+
]
57+
},
58+
{
59+
"cell_type": "code",
60+
"execution_count": null,
61+
"metadata": {},
62+
"outputs": [],
63+
"source": [
64+
"!pip install matplotlib\n",
65+
"!pip install numpy"
66+
]
67+
},
68+
{
69+
"cell_type": "markdown",
70+
"metadata": {},
71+
"source": [
72+
"## Niveles de Oxígeno\n",
73+
"Muestra diez minutos de niveles de oxígeno en tu nave."
74+
]
75+
},
76+
{
77+
"cell_type": "code",
78+
"execution_count": null,
79+
"metadata": {},
80+
"outputs": [],
81+
"source": [
82+
"import numpy as np\n",
83+
"import matplotlib.pyplot as plt\n",
84+
"data = np.random.default_rng(12345)\n",
85+
"oxy_nums = data.integers(low=0, high=10, size=10)\n",
86+
"\n",
87+
"plt.bar(range(len(oxy_nums)), oxy_nums)\n",
88+
"plt.show()"
89+
]
90+
},
91+
{
92+
"cell_type": "markdown",
93+
"metadata": {},
94+
"source": [
95+
"## Velocidad de la nave\n",
96+
"\n",
97+
"Muestra los segundos necesarios para pasar de 0 a 11200 metros por segundo, dada la aceleración de la nave en metros por segundo."
98+
]
99+
},
100+
{
101+
"cell_type": "code",
102+
"execution_count": null,
103+
"metadata": {},
104+
"outputs": [],
105+
"source": [
106+
"endVelocity = 11200\n",
107+
"startVelocity = 0\n",
108+
"acceleration = 9.8\n",
109+
"\n",
110+
"time = (endVelocity - startVelocity) / acceleration\n",
111+
"print(\"Tiempo para alcanzar la velocidad deseada = \", time)"
112+
]
113+
},
114+
{
115+
"cell_type": "markdown",
116+
"metadata": {},
117+
"source": [
118+
"Curso Propedútico de Python para Launch X - Innovacción Virtual.\n",
119+
"\n",
120+
"Material desarrollado con base en los contenidos de MSLearn y la metáfora de LaunchX, traducción e implementación por: Fernanda Ochoa - Learning Producer de LaunchX.\n",
121+
"\n",
122+
"Redes:\n",
123+
"* GitHub: [FernandaOchoa](https://github.com/FernandaOchoa)\n",
124+
"* Twitter: [@imonsh](https://twitter.com/imonsh)\n",
125+
"* Instagram: [fherz8a](https://www.instagram.com/fherz8a/)"
126+
]
127+
}
128+
],
129+
"metadata": {
130+
"interpreter": {
131+
"hash": "502cd6c3b6c9e666d195e1caff9d64ea12bf644e547a4c8fae84812082c54b6f"
132+
},
133+
"kernelspec": {
134+
"display_name": "Python 3.9.5 64-bit",
135+
"language": "python",
136+
"name": "python3"
137+
},
138+
"language_info": {
139+
"codemirror_mode": {
140+
"name": "ipython",
141+
"version": 3
142+
},
143+
"file_extension": ".py",
144+
"mimetype": "text/x-python",
145+
"name": "python",
146+
"nbconvert_exporter": "python",
147+
"pygments_lexer": "ipython3",
148+
"version": "3.9.5"
149+
},
150+
"orig_nbformat": 4
151+
},
152+
"nbformat": 4,
153+
"nbformat_minor": 2
154+
}
Lines changed: 229 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
1+
# Introducción
2+
3+
Aunque los desarrolladores web crean sus sitios web mediante el uso de herramientas como Node.js, ASP.NET o Java, y ejecutan su código localmente mediante el uso de herramientas en editores de código como Visual Studio Code, los desarrolladores de Python tienen algunas otras herramientas a su disposición.
4+
5+
Una de esas herramientas útiles se llama ``notebook / notebook ``. Un notebook es un entorno interactivo que un desarrollador puede usar para ejecutar bloques de código y agregar áreas de documentación para explicar el código en sí. Aunque los desarrolladores de Python también pueden usar archivos .py para ejecutar programas de Python directamente, pueden usar notebooks para ejecutar y documentar su código, explicando su lógica en el camino.
6+
7+
## Escenario: Miembro de la tripulación en la ISS
8+
9+
Supongamos que eres un miembro de la tripulación en una nave espacial. Su misión es entregar algunos equipos importantes a la Estación Espacial Internacional (ISS). Si no está familiarizado con algunos de los muchos botones de la consola de la nave espacial, ¡Es mejor no aprender por el método de prueba y error, en pleno vuelo! En su lugar, puede consultar el manual de viaje para saber qué botones presionar para realizar varias tareas. Pero, ¿Qué pasa si el manual está incompleto?
10+
11+
Su trabajo es mejorar el registro de la nave mediante la creación de explicaciones interactivas de los controles de la nave. Al trabajar con un notebook, puede explicar más fácilmente los usos de las distintas partes de la consola.
12+
13+
## ¿Qué aprenderás?
14+
15+
Al final de este módulo, podrás:
16+
17+
* Crear un notebook de Jupyter localmente.
18+
* Ejecutar un notebook de Jupyter mediante Python en Visual Studio Code.
19+
* Describir algunas de las formas de crear un notebook.
20+
21+
## ¿Cuál es el objetivo principal?
22+
23+
Aprovechar los notebooks como una herramienta para crear una experiencia de aprendizaje más interactiva.
24+
25+
# Configurando el entorno de trabajo
26+
27+
Hay muchas maneras de ejecutar notebooks. En varios de los módulos de este OnBoarding ejecutarás notebooks. En este módulo, sin embargo, aprenderás a configurar tu entorno de trabajo para ejecutar notebooks localmente a través de Visual Studio Code.
28+
29+
Para comenzar a crear tu notebook, debes tener el siguiente software (programas) disponible en su computadora:
30+
31+
* Python
32+
* Visual Studio Code
33+
* Extensión Jupyter de Visual Studio Code
34+
35+
## Instalando Python
36+
37+
Si no tienes Python instalado en su computadora, debes descargarlo. Dirígete a la siguiente dirección [Python.org](https://www.python.org/downloads/) para instalar la última versión compatible con tu sistema operativo.
38+
39+
Si ya tiene Python instalado, es posible que deba actualizar la instalación a la versión más reciente. Puedes verificarlo al abrir la terminal:
40+
41+
* En windows: Presiona la tecla windows, posteriormente escribe 'cmd' y presiona enter.
42+
* En Mac: Finder - Terminal - Enter
43+
Posteriormente escribe el siguiente comando:
44+
45+
``python --version``
46+
47+
Es importante lo escribas exactamente igual, ya que al tratarse de un comando si no está escrito correctamente podría no saber la computadora a qué te refieres.
48+
49+
Al ejecutar el comando te mostrará la versión que tienes actualmente instalada, para este entrenamiento, utilizaremos de la versión 3 para arriba.
50+
51+
![](../images/pythonv.png)
52+
53+
## Instalando Visual Studio Code
54+
55+
A continuación, instala Visual Studio Code. Para ello dirígete a la siguiente dirección [Visual Studio Code](https://code.visualstudio.com/), selecciona el sistema operativo de tu preferencia.
56+
Si no ves la opción de tu sistema, selecciona la flecha para ver más sistemas disponibles.
57+
58+
![](../images/vscode.jpeg)
59+
60+
Cuando se complete la instalación, configúrala a tu gusto.
61+
62+
## Instalando la extensión de Python
63+
64+
Esta extensión permite ejecutar notebooks de Jupyter desde Visual Studio Code mediante un [Kernel](https://es.wikipedia.org/wiki/N%C3%BAcleo_(inform%C3%A1tica)). Un kernel en Visual Studio Code le ayuda a activar un entorno de Anaconda, por lo que puede ejecutar sus notebooks mediante la instalación de Python.
65+
66+
En Visual Studio Code, en el panel de extensiones de la izquierda, busque Jupyter de Microsoft. Para instalar esta extensión, seleccione Instalar.
67+
68+
![](../images/jupyter-extension.png)
69+
70+
Ahora que tienes configurados los tres elementos del área de trabajo, puedes empezar a trabajar con los notebooks de Jupyter en Visual Studio Code.
71+
72+
# Ejercicio 1: Crea y ejecuta tu notebook
73+
74+
Un notebook es un entorno interactivo en el que se puede escribir código y documentarlo. Los notebooks también pueden mostrar cálculos matemáticos y gráficos.
75+
76+
Aquí, crearás un archivo .ipynb local y lo ejecutarás en Visual Studio Code. El sufijo ``.ipynb`` se utiliza para referirse a los notebooks de Jupyter, que anteriormente se llamaban: ``.iPython:`` ``notebooksipynb``
77+
78+
## Crear un notebook
79+
80+
Crea el archivo a través de la paleta de comandos en Visual Studio Code, abriendo la paleta y escribiendo el nombre del notebook: ``ship-manual.ipynb``
81+
82+
![](../images/createn.gif)
83+
84+
La extensión Jupyter debe mostrar el archivo en blanco, con la opción de agregar código (python) y bloques Markdown (Un lenguaje de etiquetas, similar a html que veremos más adelante).
85+
86+
### Crear un elemento de tipo Markdown
87+
88+
En la parte superior del notebook, verás dos opciones para crear dos tipos diferentes de bloques de contenido en el notebook: **Markdown** y **código ejecutable**.
89+
90+
La primera tarea es crear un título de documento. En la parte superior de la interfaz del notebook de Visual Studio Code, selecciona el botón más (+) situado junto a Markdown. Aparecerá un cuadro. Agregue el siguiente Markdown al cuadro:
91+
92+
`` # Manual de la Nave``
93+
94+
Selecciona la palomita para ver el resultado.
95+
![](../images/runmark.png)
96+
97+
¡Acabas de nombrar tu notebook! Para ver cómo se representa este archivo Markdown, elige ejecutar todo desde la parte superior del notebook o la flecha pequeña a la izquierda del cuadro Markdown.`<h1>`
98+
99+
### Ejecutar el notebook
100+
101+
Ahora necesitas ejecutar tu notebook. Elige un kernel de la lista desplegable en la parte superior derecha. Es posible que tengas uno o varios núcleos para elegir, así que asegúrese de elegir un kernel de Python 3.
102+
103+
![](../images/choose-kernel.png)
104+
105+
### Crear código ejecutable
106+
107+
Ahora puedes agregar algo de código al notebook. Agreguemos una forma de mostrar un widget para iniciar el notebook.
108+
109+
Primero, debes instalar una biblioteca llamada ``ipywidgets``. Instala la biblioteca agregando un nuevo bloque de código debajo del bloque de título del notebook. Utilizando el administrador de paquetes de Python ``pip``, para instalar la biblioteca.
110+
111+
``pip install ipywidgets``
112+
113+
![](../images/pip.png)
114+
115+
Después de instalarlo, te pedirá que reinicies el kernel. Basta con dar clic en la sección señalada de amarillo para reiniciar el kernel.
116+
117+
![](../images/restart.png)
118+
119+
A continuación, crearemos un botón en el notebook que, cuando se presiona, muestra un mensaje.
120+
121+
En un nuevo bloque de código, agrega el código siguiente:
122+
123+
```
124+
import ipywidgets as widgets
125+
126+
ignition = widgets.ToggleButton(
127+
value=False,
128+
description='Iniciar Launch',
129+
button_style='success',
130+
tooltip='Engage your Launch',
131+
icon='rocket'
132+
)
133+
134+
output = widgets.Output()
135+
136+
display(ignition, output)
137+
138+
def on_value_change(change):
139+
with output:
140+
if change['new'] == True:
141+
print("Nave Iniciada!")
142+
else:
143+
print("Nave Detenida")
144+
145+
ignition.observe(on_value_change, names='value')
146+
```
147+
148+
![](../images/button.png)
149+
150+
¿Qué está pasando aquí? Utilizamos la biblioteca ``ipywidget`` para crear un botón y éste escucha cuando hacemos un clic provocando que su valor cambie, imprimiendo el mensaje observado. ¡Ahora tu manual está empezando a verse bien, y puedes arrancar la nave aún si se detiene!
151+
152+
## Ejercicio 2: Usar comandos avanzados
153+
154+
Hemos creado un notebook básico con un poco de Markdown y un widget para arrancar la nave. Sin embargo, ¡Hay mucho más que puedes hacer con los notebooks!
155+
156+
En el manual de su nave, le gustaría crear un gráfico de las estadísticas diarias de su nave. Puedes crear todo tipo de gráficos interesantes en un notebook, que también es útil para científicos de datos e ingenieros de aprendizaje automático (no solo astronautas).
157+
158+
Crea un gráfico para mostrar los niveles de oxígeno de su nave utilizando ``Matplotlib y Numpy``, unas bibliotecas populares para crear tablas y gráficos en Python.
159+
160+
Para ello en una celda de código vamos a ejecutar el siguiente comando:
161+
162+
```
163+
!pip install matplotlib
164+
!pip install numpy
165+
```
166+
167+
Enseguida, crea un bloque Markdown para anotar la descripción:
168+
169+
![](../images/nivelesox.png)
170+
171+
```
172+
## Niveles de Oxígeno
173+
174+
Muestra diez minutos de niveles de oxígeno en tu nave.
175+
```
176+
177+
Creamos un nuevo bloque de código e importamos dos bibliotecas ```numpy``` y ```matplotlib```, para crear un gráfico de barras.
178+
179+
```
180+
import numpy as np
181+
import matplotlib.pyplot as plt
182+
data = np.random.default_rng(12345)
183+
oxy_nums = data.integers(low=0, high=10, size=10)
184+
185+
plt.bar(range(len(oxy_nums)), oxy_nums)
186+
plt.show()
187+
```
188+
Por supuesto, estos datos son una maqueta de datos reales, que se utilizan para crear una matriz de 100 enteros entre 1 y 10.
189+
190+
El gráfico de barras se ve así:
191+
![](../images/chart.png)
192+
193+
### Realizar cálculos
194+
A continuación, deseas mostrar el tiempo que su barco necesita tomar para llegar a una buena velocidad. Anota y crea una ecuación que te permitirá ingresar la velocidad de inicio de tu nave, la velocidad final deseada y la aceleración en metros por segundo.
195+
196+
Creamos un bloque markdown para explicar la ecuación:
197+
198+
```
199+
## Velocidad de la nave
200+
201+
Muestra los segundos necesarios para pasar de 0 a 11200 metros por segundo, dada la aceleración de la nave en metros por segundo.
202+
```
203+
204+
Agrega un bloque de código para la ecuación:
205+
206+
```
207+
endVelocity = 11200
208+
startVelocity = 0
209+
acceleration = 9.8
210+
211+
time = (endVelocity - startVelocity) / acceleration
212+
print("Tiempo para alcanzar la velocidad deseada = ", time)
213+
```
214+
215+
Ejecuta el bloque de código para determinar cuánto tiempo tardará en alcanzar la velocidad deseada.
216+
217+
Ajusta los valores de velocidad de inicio y fin, o la aceleración, para determinar cómo funcionará tu nave espacial.
218+
219+
¡Felicidades! Has creado con éxito el manual de una nave que muestra información útil sobre su nave espacial. Debido a que todo está contenido en un notebook de Jupyter, no tendrás ninguna dificultad para realizar un seguimiento de él, ya que está bien anotado y bien mostrado. ¡Incluso incluye un interruptor de encendido! Los notebooks Jupyter son una forma útil de mostrar todo tipo de datos e incluso pequeñas interfaces de usuario.
220+
221+
222+
Curso Propedútico de Python para Launch X - Innovacción Virtual.
223+
224+
Material desarrollado con base en los contenidos de MSLearn y la metáfora de LaunchX, traducción e implementación por: Fernanda Ochoa - Learning Producer de LaunchX.
225+
226+
Redes:
227+
* GitHub: [FernandaOchoa](https://github.com/FernandaOchoa)
228+
* Twitter: [@imonsh](https://twitter.com/imonsh)
229+
* Instagram: [fherz8a](https://www.instagram.com/fherz8a/)

0 commit comments

Comments
 (0)