#!/usr/bin/env python # coding: utf-8 #
# #
# # # Aprendizaje Profundo # #
Diplomado en Ciencia de Datos
# #
Operadores aritméticos y lógicos
# #
#
# #
#
# #
Fuente: Dubai, Marina bay - sp.depositphotos.com
# ## Profesores # * Alvaro Montenegro, PhD, # * Campo Elías Pardo, PhD, # * Daniel Montenegro, Msc, # * Camilo José Torres Jiménez, Msc, # ## Asesora Medios y Marketing digital # * Maria del Pilar Montenegro, pmontenegro88@gmail.com # * Jessica López Mejía, jelopezme@unal.edu.co # ## Jefe Jurídica # * Paula Andrea Guzmán, guzmancruz.paula@gmail.com # ## Coordinador Jurídico # * David Fuentes, fuentesd065@gmail.com # ## Desarrolladores Principales # * Dairo Moreno, damoralesj@unal.edu.co # * Joan Castro, jocastroc@unal.edu.co # * Bryan Riveros, briveros@unal.edu.co # * Rosmer Vargas, rovargasc@unal.edu.co # * Venus Puertas, vpuertasg@unal.edu.co # ## Expertos en Bases de Datos # * Giovvani Barrera, udgiovanni@gmail.com # * Camilo Chitivo, cchitivo@unal.edu.co # ## Suma de variables y concatenación de variables # 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. # In[ ]: # "Sumar" dos textos x = "Python es " y = "asombroso" z = x + y print(z) # In[ ]: # Sumar dos números n1 = 1 n2 = 5 suma = n1 + n2 print(suma) # In[ ]: # Escribir texto y números print("la suma de", n1, "y", n2, "es igual", suma) print("la suma de " + str(n1) + " y " + str(n2) + " es igual " + str(suma)) # ## Operadores Aritméticos y redondeo # 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: # # | **Operador** | **Descripción** | # | :---: | :---: | # |`+`|Suma| # |`-`|Resta| # |`*`|Multiplicación| # |`/`|División| # |`**`|Potencia| # |`%`|Módulo (residuo)| # |`//`|División entera (cociente)| # # ## División y residuo entre enteros # # 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: # # $$ 20 \div 3 = 6, \ \ \ \text{ con residuo } 2.$$ # # Tenemos que en Python se escribe la división entre enteros como # # In[ ]: res = 20 // 3 print(res) # y el residuo de la división, es decir la operación módulo como # In[ ]: res = 20 % 3 print(res) # ### Precedencia de operadores aritméticos # # 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. # # # | **Precedencia** | **Operadores** | # | :---: | :---: | # |0|`(...)`| # |1|`**`| # |2|`%`| # |3|`*`, `/`| # |4|`+`, `-`| # # # Si queremos operar por ejemplo la expresión: # # $$ 5\times(3-5)^2-\cfrac{6}{81^{1/4}}$$ # # tenemos que escribir: # In[ ]: res = 5*(3-5)**2-6/81**(1/4) print(res) # El cálculo ocurre de la siguiente forma # # * `(3-5)` es igual a `-2` # * `(1/4)` es igual a `0.25` # * `(3-5)**2` es igual a `(-2)**2` que es `4` # * `81**(1/4)` es igual a `81**0.25` que es `3` # * `5*(3-5)**2` es igual a `5*4` que es `20` # * `6/81**(1/3)` es igual a `6/3` que es `2` # * `5*(3-5)**2-6/81**(1/4)` es igual a `20 - 2` que es `18` # ### Ejercicio # # 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: # In[ ]: res = 5*3-5**2-(6)/(81**(1/4)) print(res) # In[ ]: res = 5*(3-5)**2-6/(81**1/4) print(res) # In[ ]: res = 5*(3-5)**2-6/81**1/4 print(res) # In[ ]: res = 5*3-5**2-6/81**1/4 print(res) # ## Operadores de comparación # | **Operador** | **Descripción** |**Ejemplo**|**Resultado**| # | :---: | :---: |:---: |:---: | # |`==`|Prueba si dos valores son iguales| `3==3` | `True`| # |`!=`|Prueba si dos valores no son iguales entre si| `2!=3` | `True` | # |`<`|Prueba si el valor de la izquierda es menor que el de la derecha| `4<3`|`False`| # |`>`|Prueba si el valor de la izquierda es mayor que el de la derecha| `4>3`|`True`| # |`<=`|Prueba si el valor de la izquierda es menor o igual que el de la derecha|`4<=3`|`False`| # |`>=`|Prueba si el valor de la izquierda es mayor igual que el de la derecha|`4>=3`|`True`| # ## Operadores Lógicos # | **Operador** | **Descripción** |**Ejemplo**|**Resultado**| # | :---: | :---: |:---: |:---: | # |`and`|Regresa verdadero si el valor de las izquierda y el de la derecha son verdaderos| `(3<4)and(5>1)`|`True`| # |`or`|Regresa verdadero si uno de los dos valores a(izquierda o derecha es verdadero, o ambos| `(3>4)or(5<1)`|`False`| # |`not`|Regresa verdadero si el valor que se está evaluando es falso|`not(3>2)`|`False`| # ### Ejercicio # # Verifique que entiende que hace el siguiente código. ¿Cuál es la salida? # In[ ]: edad = 15 estado = (edad>12)and(edad<20): print('estado =', estado) # ## Resultados con números complejos # Revise la siguiente línea y asegúrese que la entiende. Si tiene dudas consulte a sus profesores o asistentes monitores. # In[ ]: res = 3+(-4)**(1/2) # Recordemos un poquito de nuestras matemáticas print(res) # ## Redondeo de números reales # 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. # In[ ]: # Cálculo original n1 = 47 / 3 print(n1) # In[ ]: # Redondea sin cifras decimales n2 = round(n1) print(n2) # In[ ]: # Redeondeo con tres cifras decimales n3 = round(n1, 3) print(n3) # ### Ejercicio # # Use la función `round()` para redondear el número $\pi$ con 6 cifras decimales. # # 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` # In[ ]: # importando la variable que almacena el número pi: from math import pi # imprime el número pi con 6 cifras decimales: