3.2 Números

3.2 Números

En esta sección veremos los tipos de datos númericos que ofrece Python centrándonos en booleanos, enteros y flotantes.

3.2.1 Booleanos

George Boole es considerado como uno de los fundadores del campo de las ciencias de la computación y fue el creador del Álgebra de Boole que da lugar, entre otras estructuras algebraicas, a la Lógica binaria. En esta lógica las variables sólo pueden tomar dos valores discretos: verdadero o falso.

El tipo de datos bool proviene de lo explicado anteriormente y admite dos posibles valores:

  • True que se corresponde con verdadero (y también con 1 en su representación numérica).
  • False que se corresponde con falso (y también con 0 en su representación numérica). Veamos un ejemplo de su uso:

3.2 Números

La primera variable is_opened está representando el hecho de que algo esté abierto, y al tomar el valor True podemos concluir que sí. La segunda variable has_sugar nos indica si una bebida tiene azúcar; dado que toma el valor False inferimos que no lleva azúcar.

3.2 Números

3.2.2 Enteros

Los números enteros no tienen decimales pero sí pueden contener signo y estar expresados en alguna base distinta de la usual (base 10).

Literales enteros

Veamos algunos ejemplos de números enteros:

3.2 Números

Dos detalles a tener en cuenta:

  • No podemos comenzar un número entero por 0.
  • Python permite dividir los números enteros con guiones bajos _ para clarificar su lectura/escritura. A efectos prácticos es como si esos guiones bajos no existieran.

Operaciones con enteros

A continuación se muestra una tabla con las distintas operaciones sobre enteros que podemos realizar en Python:

3.2 Números

3.2 Números

Veamos algunas pruebas de estos operadores:

3.2 Números

Es de buen estilo de programación dejar un espacio entre cada operador. Además hay que tener en cuenta que podemos obtener errores dependiendo de la operación (más bien de los operandos) que estemos utilizando, como es el caso de la división por cero.

Igualmente es importante tener en cuenta la prioridad de los distintos operadores:

3.2 Números

Ejemplos de prioridad de operadores:

3.2 Números

3.2 Números

Asignación aumentada

Python nos ofrece la posibilidad de escribir una asignación aumentada mezclando la asignación y un operador.

3.2 Números

Supongamos que disponemos de 100 vehículos en stock y que durante el pasado mes se han vendido 20 de ellos. Veamos cómo sería el código con asignación tradicional vs. asignación aumentada:

3.2 Números

Estas dos formas son equivalentes a nivel de resultados y funcionalidad, pero obviamente tienen diferencias de escritura y legibilidad. De este mismo modo, podemos aplicar un formato compacto al resto de operaciones:

3.2 Números

Estas dos formas son equivalentes a nivel de resultados y funcionalidad, pero obviamente tienen diferencias de escritura y legibilidad. De este mismo modo, podemos aplicar un formato compacto al resto de operaciones:
3.2 Números

Módulo

La operación módulo (también llamado resto), cuyo símbolo en Python es %, se define como el resto de dividir dos números. Veamos un ejemplo para enteder bien su funcionamiento:

3.2 Números

Exponenciación

Para elevar un número a otro en Python utilizamos el operador de exponenciación **:

3.2 Números

Se debe tener en cuenta que también podemos elevar un número entero a un número decimal. En este caso es como si estuviéramos haciendo una raíz. Por ejemplo:

3.2 Números

Ejercicio

Una ecuación de segundo grado se define como ax2 + bx + c = 0, y (en determinados casos) tiene dos soluciones:

3.2 Números

Dados los coeficientes a=4, b=-6 y c=2 calcule sus dos soluciones. Tenga en cuenta subdividir los cálculos y reutilizar variables (por ejemplo el discriminante).

La solución para los valores anteriores es:

  • x1 = 1
  • x2 = 0.5

Recuerde que la raíz cuadrada se puede calcular como la exponenciación a 1.

Puede comprobar los resultados para otros valores de entrada con esta aplicación para resolver ecuaciones cuadráticas.

Valor absoluto

Python ofrece la función abs() para obtener el valor absoluto de un número:

3.2 Números

Límite de un entero

Nivel avanzado

¿Cómo de grande puede ser un int en Python? La respuesta es de cualquier tamaño. Por poner un ejemplo, supongamos que queremos representar un centillón. Este valor viene a ser un «1» seguido por ¡600 ceros! ¿Será capaz Python de almacenarlo?

3.2 Números

Nota: En muchos lenguajes tratar con enteros tan largos causaría un «integer overflow». No es el caso de Python que puede manejar estos valores sin problema.

Publicaciones Similares