Created
October 27, 2020 18:30
-
-
Save javifelices/ad1ae0025dd6f7448b5595b318934424 to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n", | |
" <a href=\"https://cocl.us/PY0101EN_edx_add_top\">\n", | |
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Ad/TopAd.png\" width=\"750\" align=\"center\">\n", | |
" </a>\n", | |
"</div>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<a href=\"https://cognitiveclass.ai/\">\n", | |
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Ad/CCLog.png\" width=\"200\" align=\"center\">\n", | |
"</a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h1>Condiciones en Python</h1>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p><strong>¡Bienvenido!</strong> En este cuaderno aprenderás los relacionado con las condiciones en el Lenguaje de Programación Python. Al final del laboratorio sabrás como se utilizan las condiciones, incluyendo sus operadores y sentencias condicionales. </p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2>Tabla de Contenido</h2>\n", | |
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n", | |
" <ul>\n", | |
" <li>\n", | |
" <a href=\"#cond\">Declaraciones de Condición</a>\n", | |
" <ul>\n", | |
" <li><a href=\"comp\">Operadores de Comparación</a></li>\n", | |
" <li><a href=\"branch\">Sentencias Condicionales (Branching)</a></li>\n", | |
" <li><a href=\"logic\">Operadores Lógicos</a></li>\n", | |
" </ul>\n", | |
" </li>\n", | |
" <li>\n", | |
" <a href=\"#quiz\">Cuestionario sobre Condiciones</a>\n", | |
" </li>\n", | |
" </ul>\n", | |
" <p>\n", | |
" Tiempo Estimado: <strong>20 min</strong>\n", | |
" </p>\n", | |
"</div>\n", | |
"\n", | |
"<hr>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2 id=\"cond\">Declaraciones de Condición</h2>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3 id=\"comp\">Operadores de Comparación</h3>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Los operadores de comparacion relacionan algun valor u operador y, en base a una condicion, se obtiene un valor verdadero o falso. Al comparar dos valores se pueden utilizar estos operadores:\n", | |
"\n", | |
"<ul>\n", | |
" <li>igual: <b>==</b></li>\n", | |
" <li>diferente: <b>!=</b></li>\n", | |
" <li>mayor que: <b>></b></li>\n", | |
" <li>menor que: <b><</b></li>\n", | |
" <li>mayor o igual a: <b>>=</b></li>\n", | |
" <li>menor o igual a: <b><=</b></li>\n", | |
"</ul>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Asignemos a la variable <code>a</code> un valor de 5. Utiliza el operador de igualdad representado por el signo <b>==</b> para determinar si dos valores son iguales. El siguiente caso compara a la variable <code>a</code> con 6." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Condicion Igual a\n", | |
"\n", | |
"a = 5\n", | |
"a == 6" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"El resultado es <b>Falso</b> ya que 5 no es igual a 6." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Considera el siguiente operador de comparación, <code>i > 5</code>. Si el valor del operando de la izquierda, en este caso la variable <b>i</b>, es mayor que el valor del operando de la derecha, en este caso 5, entonces la declaración es <b>Verdadera</b>. De otra manera seria <b>Falso</b>. Si <b>i</b> es igual a 6, debido a que 6 es mayor a 5, la salida será <b>Verdadera</b>." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Signo Mayor a \n", | |
"\n", | |
"i = 6\n", | |
"i > 5" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Asignar <code>i = 2</code>. La declaración es falsa porque 2 no es mayor que 5." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Signo Mayor a \n", | |
"\n", | |
"i = 2\n", | |
"i > 5" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Mostraremos en la siguiente figura algunos valores para la variable <code>i</code>. Los valores mayores a 5 están en verde y el resto en rojo. La región verde representa a la condición cuando esta es **Verdadera**, la roja cuando es **Falsa**. Si el valor de <code>i</code> es 2, obtenemos **Falso** ya que 2 se encuentra en la región roja. De igual forma, si el valor de <code>i</code> es 6, tendremos **Verdadero** al estar el valor dentro del área verde." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%203/Images/CondsGreater.gif\" width=\"650\" />" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"La comprobación de desigualdad se representa con el signo de exclamación precediendo el signo de igualdad, si dos operandos no son iguales entonces la condición es **Verdadera**. Por ejemplo, la siguiente condición producirá un resultado **Verdadero** mientras el valor de <code>i</code> se distinto de 6." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Signo de Desigualdad\n", | |
"\n", | |
"i = 2\n", | |
"i != 6" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Cuando <code>i</code> es igual a 6 la expresión de desigualdad arroja <b>Falso</b>." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Signo de Desigualdad\n", | |
"\n", | |
"i = 6\n", | |
"i != 6" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Observa los números de abajo. Cuando la condición es **Verdadera** los números correspondientes son marcados en verde y cuando es **Falsa** se marcan en rojo. Si le asignamos a la variable <code>i</code> el valor de 2 el operador es verdadero debido a que el 2 se encuentra en la región verde. Si le asignamos a la variable <code>i</code> el valor de 6 obtenemos **Falso** como resultado ya que la condición se encuentra en el rojo." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%203/Images/CondsIneq.gif\" width=\"650\" />" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Podemos aplicar el mismo método a las cadenas. Por ejemplo, usando el operador de igualdad en dos de ellas. Si las cadenas no son iguales, el resultado es **Falso**." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Usar el operador de Igualdad para comparar las cadenas\n", | |
"\n", | |
"\"ACDC\" == \"Michael Jackson\"" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Si usamos el operador de desigualdad, la salida será **Verdadera** al no ser las cadenas iguales." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Usar el operador de Desigualdad para comparar las cadenas\n", | |
"\n", | |
"\"ACDC\" != \"Michael Jackson\"" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"El operador de desigualdad también se puede usar para comparar letras/palabras/símbolos de acuerdo con el valor ASCII de las letras. El valor decimal mostrado en la siguiente tabla representa el orden del carácter:" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Por ejemplo, el código ASCII de <b>!</b> es 21, mientras el código para <b>+</b> es 43. Por consiguiente <b>+</b> es mayor que <b>!</b> ya que 43 es mayor a 21." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"De igual forma, el valor ASCII de <b>A</b> es 101, y el valor para <b>B</b> es 102, entonces:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Comparar los caracteres\n", | |
"\n", | |
"'B' > 'A'" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Cuando hay múltiples letras, la primera es la que se toma en cuenta:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Comparar los caracteres\n", | |
"\n", | |
"'BA' > 'AB'" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<b>Observación</b>: Las letras en mayúscula tienen un código ASCII distinto a las minúsculas, esto significa que al comparar letras, Python distinguirá entre mayúsculas y minúsculas." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3 id=\"branch\">Sentencias Condicionales (Branching)</h3>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Las sentencias condicionales permiten ejecutar diferentes declaraciones para distintas entradas. Es útil pensar en una **condición if** como una habitación cerrada, si la condición es **Verdadera** podremos entrar y la aplicación podrá ejecutar algunas tareas predefinidas, pero si la condición es **Falsa** el programa ignorara dichas tareas." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Por ejemplo, consideremos que el rectángulo azul representa un concierto de ACDC. Si la persona es mayor de 18, puede entrar al concierto. Si tiene 18 o menos, no puede entrar.\n", | |
"\n", | |
"Utiliza la sentencia condicional vista anteriormente como aquella necesaria para usarse en una **condición if**. La sintaxis es tan sencilla como <code> if <i>sentencia condicional</i> :</code>, la cual contiene la palabra <code>if</code>, la condición y dos puntos al final. Empieza la tarea que tienes que ejecutar con esta condición en una nueva línea y sangría. Las líneas de código después de los dos puntos y con sangría solo serán ejecutadas cuando la **condición if** sea **Verdadera**. Las tareas finalizaran cuando el código no contenga sangría.\n", | |
"\n", | |
"En el siguiente caso, las tareas sole ejecutaran <code>print(“you can enter”)</code> si la variable <code>age</code> es mayor a 18 es Verdadera ya que esta parte del código contiene sangría. Sin embargo, la ejecución de <code>print(“move on”)</code> no será afectada por la condición if." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Ejemplo de condicion if\n", | |
"\n", | |
"age = 19\n", | |
"#age = 18\n", | |
"\n", | |
"#La expresión que puede ser verdadera o falsa\n", | |
"if age > 18:\n", | |
" \n", | |
" #parte con sangría, esta es la expresión que será ejecutada si la condición es verdadera\n", | |
" print(\"you can enter\" )\n", | |
"\n", | |
"#Las declaraciones después de la condición if serán ejecutadas independientemente de si la condición \n", | |
"#es verdadera o falsa\n", | |
"print(\"move on\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<i>Comprueba el código con la variable age comentada (age = 18)</i>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"El siguiente diagrama será de ayuda para ilustrar el proceso. En el lado izquierdo, podemos observar lo que pasa cuando la condición es <b>Verdadera</b>. La persona que ingresa al concierto de ACDC representa la parte del código que tiene sangría siendo ejecutada; después prosigue. En el lado derecho vemos lo que sucede cuando la condición es <b>Falsa</b>; a la persona no se le permite el acceso, y esta continua. En este caso, el segmento de código en la parte con sangría no es ejecutada, pero el resto de las sentencias si." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%203/Images/CondsIf.gif\" width=\"650\" />" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"La condición <code>else</code> ejecuta un bloque de código si ninguna de las condiciones antes de ella es **Verdadera**. Usemos de nuevo la analogía del concierto de ACDC. Si la persona tiene 17 años no puede entrar al concierto de ACDC, pero si puede entrar al de MeatLoaf. La sintaxis de la condición <code>else</code> es similar a la de la condición <code>if</code>, de esta forma <code>else :</code>. Observa que no hay una declaración de condición para <code>else :</code>. Averigua que sucede cuando cambias los valores de <code>age</code>." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Ejemplo de condicion Else\n", | |
"\n", | |
"age = 18\n", | |
"# age = 19\n", | |
"\n", | |
"if age > 18:\n", | |
" print(\"you can enter\" )\n", | |
"else:\n", | |
" print(\"go see Meat Loaf\" )\n", | |
" \n", | |
"print(\"move on\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"El proceso se demuestra a continuación, cada posibilidad es mostrada a cada lado de la imagen. En la izquierda esta el caso donde la edad es de 17, asignamos el valor de 17 a la variable age, esta corresponde a la de la persona yendo al concierto de MeatLoaf. La parte derecha muestra lo que sucede cuando la persona es mayor de 18, 19 en este caso, y le es permitido entrar al concierto." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%203/Images/CondsElse.gif\" width=\"650\" />" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"La declaración <code>elif</code>, una abreviación de else if, nos permite comprobar condiciones adicionales si otras antes de ella son <b>Falsas</b>. Si la condición de la declaración <code>elif</code> es <b>Verdadera</b>, la expresión alternativa será ejecutada. Considera el ejemplo del concierto, donde si la persona tiene 18 ira al concierto de Pink Floyd en lugar de ACDC o MeatLoaf. La persona de 18 entra, debido a que no es mayor a 18 no puede ver a ACDC, pero puede ver a Pink Floyd. Después de ver el concierto, prosigue. La sintaxis de la declaración <code>elif</code> es similar a la de <code>if</code> ya que apenas cambiamos la declaración <code>if</code> por <code>elif</code>." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Ejemplo de declaración elif\n", | |
"\n", | |
"age = 18\n", | |
"\n", | |
"if age > 18:\n", | |
" print(\"you can enter\" )\n", | |
"elif age == 18:\n", | |
" print(\"go see Pink Floyd\")\n", | |
"else:\n", | |
" print(\"go see Meat Loaf\" )\n", | |
" \n", | |
"print(\"move on\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Las tres combinaciones se muestran en la figura de abajo. La parte de la izquierda muestra lo que sucede cuando la persona es mejor de 18 años. En el componente del centro la edad es de 18. El ultimo y a la derecha ejemplifica a la persona cuando es mayor de 18." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src =\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%203/Images/CondsElif.gif\" width=\"650\" />" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Mira el siguiente código" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Condición de ejemplo\n", | |
"\n", | |
"album_year = 1983\n", | |
"album_year = 1970\n", | |
"\n", | |
"if album_year > 1980:\n", | |
" print(\"Album year is greater than 1980\")\n", | |
" \n", | |
"print('do something..')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Sientete con la libertad de cambiar el valor de <code>album_year</code> por algún otro – ¡Veras como cambian los resultados!" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Observa que el bloque de código con <b>sangria</b> aquí arriba solo será ejecutado si el resultado es <b>Verdadero</b>." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Al igual que antes, podemos agregar un bloque <code>else</code> al bloque <code>if</code>. El código dentro del <code>else</code> solo será ejecutado si el resultado es <b>Falso</b>.\n", | |
"\n", | |
"<b>Sintaxis:</b>\n", | |
"\n", | |
"if (condition):\n", | |
" # haz algo\n", | |
"else:\n", | |
" # haz otra cosa" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Si la condición en el <code>if</code> es <b>Falsa</b>, la declaración después del <code>else</code> serán ejecutadas. Esto es demostrado en la siguiente figura:" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%203/Images/CondsLogicMap.png\" width=\"650\" />" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Condición de ejemplo\n", | |
"\n", | |
"album_year = 1983\n", | |
"#album_year = 1970\n", | |
"\n", | |
"if album_year > 1980:\n", | |
" print(\"Album year is greater than 1980\")\n", | |
"else:\n", | |
" print(\"less than 1980\")\n", | |
"\n", | |
"print('do something..')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Sientete con la libertad de cambiar el valor de <code>album_year</code> por algún otro – ¡Veras como cambian los resultados!" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3 id=\"logic\">Operadores Lógicos</h3>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"\n", | |
"A veces es necesario revisar mas de una condición al mismo tiempo. Por ejemplo, pudieras querer ver si una condición y otra son **Verdaderas**. Los operadores lógicos permiten combinar o modificar condiciones.\n", | |
"<ul>\n", | |
" <li><code>and</code></li>\n", | |
" <li><code>or</code></li>\n", | |
" <li><code>not</code></li>\n", | |
"</ul>\n", | |
"\n", | |
"Estos el funcionamiento de estos operadores se muestra en la siguiente tabla de verdad:" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%203/Images/CondsTable.png\" width=\"650\" />" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"La declaración <code>and</code> solo es **Verdadera** cuando ambas condiciones lo son. En el caso de <code>or</code> será verdadero si alguna de las condiciones es **Verdadera**. La declaración <code>not</code> tendrá como resultado el valor de verdad opuesto a la salida." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Veamos ahora como determinar si un disco musical fue lanzado después de 1979 (sin incluir ese año) y antes de 1990 (sin incluir ese año). El periodo 1980 y 1989 satisface esta condición. Se demostrará esto en la siguiente figura. La parte verde de las líneas <strong>a</strong> y <strong>b</strong> representa periodos donde la declaración es **Verdadera**. La parte verde en la línea <strong>c</strong> representa el periodo donde la línea a y b son **Verdaderas** al mismo tiempo.\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%203/Images/CondsEgOne.png\" width=\"650\" />" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"El bloque de código que implementa esto es:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Condición de ejemplo\n", | |
"\n", | |
"album_year = 1980\n", | |
"\n", | |
"if(album_year > 1979) and (album_year < 1990):\n", | |
" print (\"Album year was in between 1980 and 1989\")\n", | |
" \n", | |
"print(\"\")\n", | |
"print(\"Do Stuff..\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Para determinar si un disco fue lanzado antes de 1980 (.. - 1979) o después de 1989 (1990 - .. ) se puede utilizar una declaración **or**. Los periodos anteriores a 1980 (.. - 1979) o posterior a 1989 (1990 - ..) satisfacen esta condición. Esto se muestra en la figura siguiente, el color verde en la línea <strong>a</strong> y <strong>b</strong> representa periodos donde la declaración tiene un valor verdadero. El color verde en **c** indica que la condición es verdadera en al menos una de las condiciones. \n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%203/Images/CondsEgTwo.png\" width=\"650\" />" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"El bloque de código que implementa esto es:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Condición de ejemplo\n", | |
"\n", | |
"album_year = 1990\n", | |
"\n", | |
"if(album_year < 1980) or (album_year > 1989):\n", | |
" print (\"Album was not made in the 1980's\")\n", | |
"else:\n", | |
" print(\"The Album was made in the 1980's \")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"La declaración <code>not</code> revisa si la condición es falsa:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Condición de ejemplo\n", | |
"\n", | |
"album_year = 1983\n", | |
"\n", | |
"if not (album_year == '1984'):\n", | |
" print (\"Album year is not 1984\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<hr>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2 id=\"quiz\">Cuestionario sobre Condiciones</h2>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Escribe una declaración if que determine si un disco musical tiene una calificación mayor a 8. Compruébalo utilizando el calificación del disco <b>“Back in Black”</b> el cual tiene un valor de 8.5. Si la condición es verdadera, imprime “\"This album is Amazing!\"”" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"This album is Amazing!\n" | |
] | |
} | |
], | |
"source": [ | |
"disco = \"Back in Black\"\n", | |
"calificacion = 8.5\n", | |
"if calificacion > 8:\n", | |
" print(\"This album is Amazing!\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Haz doble click __aquí__ para ver la solución.\n", | |
"\n", | |
"<!-- \n", | |
"rating = 8.5\n", | |
"if rating > 8:\n", | |
" print (\"This album is Amazing!\")\n", | |
" -->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<hr>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Escribe una declaración if-else que determine lo siguiente. Si la calificación es mayor que 8 imprime “this album is amazing”. Si es menor o igual a 8 que imprima “this album is ok”." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"This album is amazing\n" | |
] | |
} | |
], | |
"source": [ | |
"calificacion = 8.5\n", | |
"if calificacion > 8:\n", | |
" print(\"This album is amazing\")\n", | |
"else:\n", | |
" print(\"This album is ok\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Haz doble click __aquí__ para ver la solución.\n", | |
"\n", | |
"<!-- \n", | |
"rating = 8.5\n", | |
"if rating > 8:\n", | |
" print (\"this album is amazing\")\n", | |
"else:\n", | |
" print (\"this album is ok\")\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<hr>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Escribe una declaración if que determine si un disco fue lanzado antes de 1980 o en los años 1991 o 1993. Si la condición es verdadera imprime el año de lanzamiento." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"El disco fue lanzado en 1991\n" | |
] | |
} | |
], | |
"source": [ | |
"# lanzamiento_disco = 1985\n", | |
"# lanzamiento_disco1 = 1978\n", | |
"lanzamiento_disco2 = 1991\n", | |
"# lanzamiento_disco3 = 1993\n", | |
"# lanzamiento_disco3 = 1994\n", | |
"if lanzamiento_disco2 < 1980 or lanzamiento_disco2 == 1991 or lanzamiento_disco2 == 1993:\n", | |
" print(\"El disco fue lanzado en\", lanzamiento_disco2)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Haz doble click __aquí__ para ver la solución.\n", | |
"\n", | |
"<!-- \n", | |
"album_year = 1979\n", | |
"\n", | |
"if album_year < 1980 or album_year == 1991 or album_year == 1993:\n", | |
" print (\"this album came out already\")\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<hr>\n", | |
"<h2>¡El último ejercicio!</h2>\n", | |
"<p>Felicidades, has completado tu primera lección y practica de laboratorio en Python. Sin embargo, hay algo mas que debes saber. La comunidad en Ciencia de Datos te alienta a compartir tu trabajo. La mejor forma de hacerlo es a través de GitHub. Al compartir tus cuadernos en GitHub, además de construir una reputación entre la comunidad de los científicos de datos, también te ayudará en el proceso de encontrar un trabajo. Incluso si este fuera tu primer material de trabajo, nunca es tarde para fomentar buenos hábitos. Por favor lee y analiza <a href=\"https://cognitiveclass.ai/blog/data-scientists-stand-out-by-sharing-your-notebooks/\" target=\"_blank\">este artículo</a> para aprender a compartir tu trabajo.\n", | |
"<hr>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n", | |
"<h2>¡Obtén gratis IBM Watson Studio!</h2>\n", | |
" <p><a href=\"https://cocl.us/PY0101EN_edx_add_bbottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Ad/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n", | |
"</div>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Acerca de los Autores:</h3> \n", | |
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> es un Científico de Datos en IBM, además posee un doctorado en Ingeniería Eléctrica. Su trabajo de investigación se centra en el uso de Aprendizaje Automático (Machine Learning), Procesamiento de Señales y Visión Artificial para determinar el impacto de los videos en el proceso cognitivo. Joseph trabaja en IBM desde la terminación de su doctorado.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Otros colaboradores: <a href=\"www.linkedin.com/in/jiahui-mavis-zhou-a4537814a\">Mavis Zhou</a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<hr>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>Copyright © 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python", | |
"language": "python", | |
"name": "conda-env-python-py" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.6.11" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment