{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " \n", "
\n", "\n", "# Aprendizaje Profundo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#
Diplomado en Ciencia de Datos
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#
Operadores aritméticos y lógicos
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", " \n", "
\n", "
\n", "\n", "
Fuente: Dubai, Marina bay - sp.depositphotos.com
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Profesores" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Alvaro Montenegro, PhD, \n", "* Campo Elías Pardo, PhD, \n", "* Daniel Montenegro, Msc, \n", "* Camilo José Torres Jiménez, Msc, " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Asesora Medios y Marketing digital" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Maria del Pilar Montenegro, pmontenegro88@gmail.com\n", "* Jessica López Mejía, jelopezme@unal.edu.co" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Jefe Jurídica" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Paula Andrea Guzmán, guzmancruz.paula@gmail.com" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Coordinador Jurídico" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* David Fuentes, fuentesd065@gmail.com" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Desarrolladores Principales" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Dairo Moreno, damoralesj@unal.edu.co\n", "* Joan Castro, jocastroc@unal.edu.co\n", "* Bryan Riveros, briveros@unal.edu.co\n", "* Rosmer Vargas, rovargasc@unal.edu.co\n", "* Venus Puertas, vpuertasg@unal.edu.co" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Expertos en Bases de Datos" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Giovvani Barrera, udgiovanni@gmail.com\n", "* Camilo Chitivo, cchitivo@unal.edu.co" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "4y3X0kbfHXzW" }, "source": [ "## Suma de variables y concatenación de variables" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "4y3X0kbfHXzW" }, "source": [ "Es posible sumar variables usando el símbolo **+**. Cuando las variables son numéricas, se **suman matemáticamente** y cuando son textos se **concatenan**. Revise cuidadosamente el siguiente ejemplo." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 71 }, "colab_type": "code", "executionInfo": { "elapsed": 400, "status": "ok", "timestamp": 1581637247515, "user": { "displayName": "Daniel Montenegro", "photoUrl": "", "userId": "07275166318289302366" }, "user_tz": 300 }, "id": "nMPQKB2jHxuk", "outputId": "b7d32507-cb5c-4cce-afd6-6504b205a9c6" }, "outputs": [], "source": [ "# \"Sumar\" dos textos\n", "x = \"Python es \" \n", "y = \"asombroso\"\n", "z = x + y\n", "print(z)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 71 }, "colab_type": "code", "executionInfo": { "elapsed": 400, "status": "ok", "timestamp": 1581637247515, "user": { "displayName": "Daniel Montenegro", "photoUrl": "", "userId": "07275166318289302366" }, "user_tz": 300 }, "id": "nMPQKB2jHxuk", "outputId": "b7d32507-cb5c-4cce-afd6-6504b205a9c6" }, "outputs": [], "source": [ "# Sumar dos números\n", "n1 = 1\n", "n2 = 5\n", "suma = n1 + n2\n", "print(suma)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 71 }, "colab_type": "code", "executionInfo": { "elapsed": 400, "status": "ok", "timestamp": 1581637247515, "user": { "displayName": "Daniel Montenegro", "photoUrl": "", "userId": "07275166318289302366" }, "user_tz": 300 }, "id": "nMPQKB2jHxuk", "outputId": "b7d32507-cb5c-4cce-afd6-6504b205a9c6" }, "outputs": [], "source": [ "# Escribir texto y números\n", "print(\"la suma de\", n1, \"y\", n2, \"es igual\", suma)\n", "print(\"la suma de \" + str(n1) + \" y \" + \n", " str(n2) + \" es igual \" + str(suma))" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "Tjq46qsVQ1F9" }, "source": [ "## Operadores Aritméticos y redondeo" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "GPiu4RLJUzVj" }, "source": [ "Mediante el uso de operadores podemos utilizar Python para hacer cálculos que haríamos con una calculadora. Por ejemplo, podemos ejecutar operaciones muy sencillas teniendo en cuenta la siguiente tabla:\n", "\n", "| **Operador** | **Descripción** |\n", "| :---: | :---: |\n", "|`+`|Suma|\n", "|`-`|Resta|\n", "|`*`|Multiplicación|\n", "|`/`|División|\n", "|`**`|Potencia|\n", "|`%`|Módulo (residuo)|\n", "|`//`|División entera (cociente)|\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## División y residuo entre enteros\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "TIkHNbN5UzV4" }, "source": [ "La división es una operación bien especial pues la mayoría de las ocasiones produce un número con cifras decimales. Sin embargo, cuando estábamos pequeños nos enseñaron a dividir enteros dando como respuesta un entero llamado **cociente** y lo que hacía falta para completar la división, un número llamado **residuo**. En Python podemos calcular esos valores con `//` para el **cociente** y `%`para el **residuo**. Por ejemplo, sabemos que:\n", "\n", "$$ 20 \\div 3 = 6, \\ \\ \\ \\text{ con residuo } 2.$$\n", "\n", "Tenemos que en Python se escribe la división entre enteros como\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "VYj4u-axUzV5" }, "outputs": [], "source": [ "res = 20 // 3\n", "print(res)" ] }, { "cell_type": "markdown", "metadata": { "colab": {}, "colab_type": "code", "id": "VYj4u-axUzV5" }, "source": [ "y el residuo de la división, es decir la operación módulo como" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "Rg9EebXCUzV7" }, "outputs": [], "source": [ "res = 20 % 3\n", "print(res)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Precedencia de operadores aritméticos\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "mWcTFd6gUzVk" }, "source": [ "Para que Python pueda traducir exitosamente una expresión numérica, existen reglas de precedencia en el orden de ejecución de las operaciones. Estas reglas son comunes a todos los lenguajes de programación. La siguiente tabla muestra la procedencia, es decir, el orden en el cual se ejecutan las operaciones aritméticas en una expresión numérica.\n", "\n", "\n", "| **Precedencia** | **Operadores** |\n", "| :---: | :---: |\n", "|0|`(...)`|\n", "|1|`**`|\n", "|2|`%`|\n", "|3|`*`, `/`|\n", "|4|`+`, `-`|\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "mWcTFd6gUzVk" }, "source": [ "Si queremos operar por ejemplo la expresión:\n", " \n", " $$ 5\\times(3-5)^2-\\cfrac{6}{81^{1/4}}$$\n", " \n", " tenemos que escribir:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "V285pz1XUzVl" }, "outputs": [], "source": [ "res = 5*(3-5)**2-6/81**(1/4)\n", "print(res)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "El cálculo ocurre de la siguiente forma\n", "\n", "* `(3-5)` es igual a `-2`\n", "* `(1/4)` es igual a `0.25`\n", "* `(3-5)**2` es igual a `(-2)**2` que es `4`\n", "* `81**(1/4)` es igual a `81**0.25` que es `3`\n", "* `5*(3-5)**2` es igual a `5*4` que es `20`\n", "* `6/81**(1/3)` es igual a `6/3` que es `2`\n", "* `5*(3-5)**2-6/81**(1/4)` es igual a `20 - 2` que es `18`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Ejercicio\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "dTnOKPXFUzVs" }, "source": [ "Es muy importante usar bien los paréntesis, el uso o desuso puede generar problemas graves en las cuentas, encuentre el error y describa lo que hizo Python en los siguientes casos respecto a la operación anterior:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "fUepsH4JUzVt" }, "outputs": [], "source": [ "res = 5*3-5**2-(6)/(81**(1/4))\n", "print(res)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "v3JKucM0UzVv" }, "outputs": [], "source": [ "res = 5*(3-5)**2-6/(81**1/4)\n", "print(res)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "WSKpxgUPUzVy" }, "outputs": [], "source": [ "res = 5*(3-5)**2-6/81**1/4\n", "print(res)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "GST4zCDtUzV1" }, "outputs": [], "source": [ "res = 5*3-5**2-6/81**1/4\n", "print(res)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "qAqnr4i70sLy" }, "source": [ "## Operadores de comparación" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "| **Operador** | **Descripción** |**Ejemplo**|**Resultado**|\n", "| :---: | :---: |:---: |:---: |\n", "|`==`|Prueba si dos valores son iguales| `3==3` | `True`|\n", "|`!=`|Prueba si dos valores no son iguales entre si| `2!=3` | `True` |\n", "|`<`|Prueba si el valor de la izquierda es menor que el de la derecha| `4<3`|`False`|\n", "|`>`|Prueba si el valor de la izquierda es mayor que el de la derecha| `4>3`|`True`|\n", "|`<=`|Prueba si el valor de la izquierda es menor o igual que el de la derecha|`4<=3`|`False`|\n", "|`>=`|Prueba si el valor de la izquierda es mayor igual que el de la derecha|`4>=3`|`True`|" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "qAqnr4i70sLy" }, "source": [ "## Operadores Lógicos" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "| **Operador** | **Descripción** |**Ejemplo**|**Resultado**|\n", "| :---: | :---: |:---: |:---: |\n", "|`and`|Regresa verdadero si el valor de las izquierda y el de la derecha son verdaderos| `(3<4)and(5>1)`|`True`|\n", "|`or`|Regresa verdadero si uno de los dos valores a(izquierda o derecha es verdadero, o ambos| `(3>4)or(5<1)`|`False`|\n", "|`not`|Regresa verdadero si el valor que se está evaluando es falso|`not(3>2)`|`False`|" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Ejercicio\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Verifique que entiende que hace el siguiente código. ¿Cuál es la salida?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "edad = 15\n", "estado = (edad>12)and(edad<20):\n", "print('estado =', estado)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Resultados con números complejos" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Revise la siguiente línea y asegúrese que la entiende. Si tiene dudas consulte a sus profesores o asistentes monitores." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "TkOeHTlXUzV-" }, "outputs": [], "source": [ "res = 3+(-4)**(1/2) # Recordemos un poquito de nuestras matemáticas\n", "print(res)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "2TGfXoLdUzWB" }, "source": [ "## Redondeo de números reales" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "2TGfXoLdUzWB" }, "source": [ "Finalmente, una función elemental y útil para el tratamiento de números decimales es `round`. La usamos para redondear los valores reales con el número de decimales que escojamos. Por defecto el redondeo quita todas las cifras decimales. Por favor revise los siguientes dos ejemplos y haga sus pruebas propias." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "colab_type": "code", "executionInfo": { "elapsed": 434, "status": "ok", "timestamp": 1581637489662, "user": { "displayName": "Daniel Montenegro", "photoUrl": "", "userId": "07275166318289302366" }, "user_tz": 300 }, "id": "F1JNJ-WPUzWC", "outputId": "071c09f0-9a01-4b30-998c-fdd6ddd0e663" }, "outputs": [], "source": [ "# Cálculo original\n", "n1 = 47 / 3\n", "print(n1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "colab_type": "code", "executionInfo": { "elapsed": 436, "status": "ok", "timestamp": 1581637500508, "user": { "displayName": "Daniel Montenegro", "photoUrl": "", "userId": "07275166318289302366" }, "user_tz": 300 }, "id": "MRXeLGffUzWE", "outputId": "b7750137-0136-4a9f-a65a-9256d3b6fb7a" }, "outputs": [], "source": [ "# Redondea sin cifras decimales\n", "n2 = round(n1)\n", "print(n2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "colab_type": "code", "executionInfo": { "elapsed": 405, "status": "ok", "timestamp": 1581637541870, "user": { "displayName": "Daniel Montenegro", "photoUrl": "", "userId": "07275166318289302366" }, "user_tz": 300 }, "id": "buhEFfx7UzWH", "outputId": "63c22886-f346-49b4-8e42-ac83f8e363a7" }, "outputs": [], "source": [ "# Redeondeo con tres cifras decimales\n", "n3 = round(n1, 3)\n", "print(n3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Ejercicio\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "P8eMjQnDI1Eg" }, "source": [ "Use la función `round()` para redondear el número $\\pi$ con 6 cifras decimales.\n", "\n", "Para poder usar el número $\\pi$ almacenado en la variable denominada `pi` del módulo `math`, vamos a usar el siguiente código: `from math import pi`" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# importando la variable que almacena el número pi:\n", "from math import pi\n", "# imprime el número pi con 6 cifras decimales:\n" ] } ], "metadata": { "celltoolbar": "Tags", "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "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.11.3" }, "vscode": { "interpreter": { "hash": "cf92aa13fedf815d5c8dd192b8d835913fde3e8bc926b2a0ad6cc74ef2ba3ca2" } } }, "nbformat": 4, "nbformat_minor": 4 }