Tutorial de Cálculos Matemáticos

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Esta sección aborda los cálculos matemáticos.

Tipos de Números

Python tiene 4 tipos de números:

  • Booleanos
  • Enteros
  • Punto flotante
  • Complejos (números imaginarios)

Booleanos (bool)

Los booleanos tienen dos valores: True, False.

a = True
b = False

Numéricamente, se evalúan como enteros con valor 1, 0.

c = 4 + True ## 5
d = False
if d == 0:
    print('d es False')

Pero, no escribas código así. Sería extraño.

Enteros (int)

Valores con signo de tamaño y base arbitrarios:

a = 37
b = -299392993727716627377128481812241231
c = 0x7fa8      ## Hexadecimal
d = 0o253       ## Octal
e = 0b10001111  ## Binario

Operaciones comunes:

x + y      Sumar
x - y      Restar
x * y      Multiplicar
x / y      Dividir (produce un float)
x // y     Dividir hacia abajo (produce un entero)
x % y      Módulo (resto)
x ** y     Potencia
x << n     Desplazamiento de bits hacia la izquierda
x >> n     Desplazamiento de bits hacia la derecha
x & y      AND bit a bit
x | y      OR bit a bit
x ^ y      XOR bit a bit
~x         NOT bit a bit
abs(x)     Valor absoluto

Punto flotante (float)

Utilice notación decimal o exponencial para especificar un valor de punto flotante:

a = 37.45
b = 4e5 ## 4 x 10**5 o 400,000
c = -1.345e-10

Los floats se representan con doble precisión utilizando la representación nativa de la CPU IEEE 754. Esto es lo mismo que el tipo double en el lenguaje de programación C.

17 dígitos de precisión
Exponente de -308 a 308

Tenga en cuenta que los números de punto flotante son imprecisos al representar decimales.

>>> a = 2.1 + 4.2
>>> a == 6.3
False
>>> a
6.300000000000001
>>>

Esto no es un problema de Python, sino el hardware de punto flotante subyacente en la CPU.

Operaciones comunes:

x + y      Sumar
x - y      Restar
x * y      Multiplicar
x / y      Dividir
x // y     Dividir hacia abajo
x % y      Módulo
x ** y     Potencia
abs(x)     Valor Absoluto

Estos son los mismos operadores que los enteros, excepto los operadores bit a bit. Funciones matemáticas adicionales se encuentran en el módulo math.

import math
a = math.sqrt(x)
b = math.sin(x)
c = math.cos(x)
d = math.tan(x)
e = math.log(x)

Comparaciones

Los siguientes operadores de comparación / relacionales funcionan con números:

x < y      Menor que
x <= y     Menor o igual que
x > y      Mayor que
x >= y     Mayor o igual que
x == y     Igual a
x!= y     Diferente de

Puede formar expresiones booleanas más complejas utilizando

and, or, not

Aquí hay algunos ejemplos:

if b >= a and b <= c:
    print('b está entre a y c')

if not (b < a or b > c):
    print('b todavía está entre a y c')

Convertir Números

El nombre del tipo se puede utilizar para convertir valores:

a = int(x)    ## Convierte x a entero
b = float(x)  ## Convierte x a flotante

Prueba.

>>> a = 3.14159
>>> int(a)
3
>>> b = '3.14159' ## También funciona con cadenas que contienen números
>>> float(b)
3.14159
>>>

Recordatorio: Estos ejercicios asumen que estás trabajando en el directorio ~/project. Busca el archivo mortgage.py.

Ejercicio 1.7: Hipoteca de Dave

Dave ha decidido tomar una hipoteca fija de 30 años por $500,000 con la corporación de hipotecas, inversión en acciones y trading de Bitcoin de Guido. La tasa de interés es del 5% y el pago mensual es de $2684.11.

A continuación, hay un programa que calcula la cantidad total que Dave tendrá que pagar durante la vida de la hipoteca:

## mortgage.py

principal = 500000.0
rate = 0.05
payment = 2684.11
total_paid = 0.0

while principal > 0:
    principal = principal * (1+rate/12) - payment
    total_paid = total_paid + payment

print('Total paid', total_paid)

Ingrese este programa y ejecútelo. Debería obtener una respuesta de 966279.5999999957.

Ejercicio 1.8: Pagos adicionales

Suponga que Dave paga $1000 adicionales al mes durante los primeros 12 meses de la hipoteca.

Modifique el programa para incorporar este pago adicional y que imprima la cantidad total pagada junto con el número de meses requeridos.

Cuando ejecute el nuevo programa, debería informar un pago total de 929965.6199999959 durante 342 meses.

✨ Revisar Solución y Practicar

Ejercicio 1.9: Creando una calculadora de pagos adicionales

Modifique el programa para que la información de pagos adicionales se pueda manejar de manera más general. Hágalo de modo que el usuario pueda establecer estas variables:

extra_payment_start_month = 61
extra_payment_end_month = 108
extra_payment = 1000

Haga que el programa examine estas variables y calcule el total pagado adecuadamente.

¿Cuánto pagará Dave si paga $1000 adicionales al mes durante 4 años a partir de después de que ya hayan transcurrido los primeros cinco años?

✨ Revisar Solución y Practicar

Ejercicio 1.10: Creando una tabla

Modifique el programa para imprimir una tabla que muestre el mes, el total pagado hasta el momento y el saldo del principal restante. La salida debería verse así:

1 2684.11 499399.22
2 5368.22 498795.94
3 8052.33 498190.15
4 10736.44 497581.83
5 13420.55 496970.98
...
308 874705.88 3478.83
309 877389.99 809.21
310 880074.10 -1871.53
Total pagado 880074.10
Meses 310
✨ Revisar Solución y Practicar

Ejercicio 1.11: Bono

Mientras estás en eso, corrige el programa para corregir el sobrepago que ocurre en el último mes.

✨ Revisar Solución y Practicar

Ejercicio 1.12: Un misterio

int() y float() se pueden utilizar para convertir números. Por ejemplo,

>>> int("123")
123
>>> float("1.23")
1.23
>>>

Con eso en mente, ¿puedes explicar este comportamiento?

>>> bool("False")
True
>>>

Resumen

¡Felicidades! Has completado el laboratorio de Números. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.