¿Cómo hacer una calculadora con Python?

✧ ¿Te interesa python y eres principiante? Si es así, en esta página podrás encontrar un tutorial para evitar esas explicaciones planas y poco intuitivas, además, podrás interactuar tú mismo con el código que te ofrecemos para que puedas determinar si tienes un dominio básico de Python. ¡Comencemos! ✧

Tutorial!

✧ Paso 1 ✧

En primer lugar, debemos definir algunas variables.


msg1 = "Ingresa un número"
msg2 = "Ingresa un operando de la siguiente lista:"
msg3 = "-->"
msg4 = """
    1) Suma
    2) Resta
    3) Multiplicación
    4) División
    5) Igual
"""


Ahora bien, tenemos las siguientes cuatro variables, mensaje 1, 2, 3 y 4. Cada uno de estos contiene algún texto que utilizaremos después.

✧ Paso 2 ✧

Ahora, definamos nuestra primera función. Esta va a ser la de la calculadora. Entonces, lo escribimos de la siguiente manera:


def calculadora():


Esta función será la principal, pues a través de esta podremos ejecutar el resto del código.
Siguiendo la misma sintáxis del ejemplo, ya podremos colocar lineas de código adentro, como las siguientes:


def calculadora():

    global val1
    val1 = 0

    print(msg1)
    val1 = int(input(msg3))

    operando_fun()


Intenta ejecutar la primera parte:


En la última línea colocaremos otra función, una que crearemos con el nombre "operando_fun()", que es la que ejecutará la función que se presentará a continuación.

✧ Paso 3 ✧

Acá definiremos nuestra segunda función, en la que podremos escoger los operandos que aplicaremos con los valores ingresados en val1.


def operando_fun():

    print(msg2)
    print(msg4)
    operando = int(input(msg3))

    if operando == 1:
        suma()

    elif operando == 2:
        resta()

    elif operando == 3:
        multiplicacion()

    elif operando == 4:
        division()

    elif operando == 5:
        igual()

    else:

        print('Vaya, parece que ingresaste un término no válido, inténtalo de nuevo')

        operando_fun()

La variable "operando" es un input, en el que se ingresarán los dígitos 1, 2, 3, 4 y 5, correspondientes a los operandos suma, resta, multiplicación, división e igual, los cuales se muestran en el mensaje 4. Cada dígito lleva a una función distinta por medio de if y else if, a donde se lleva el valor de la variable 1 y se le realiza su respectiva operación.

✧ Paso 4 ✧

Definiremos cada función de los operandos: suma(), resta(), multiplicacion(), division() e igual(). Todas estas funciones tienen una estructura muy similar, por ejemplo, acá está la de suma:


def suma():

    global val1
    global val2

    print(msg1)
    val2 = int(input(msg3))

    val3 = val1 + val2

    # Actualización de variable 1

    val1 = val3

    # Actualización de variable 2

    val2 = 0

    operando_fun()

Aquí se realizan unas cuantas movidas. Por ejemplo, la actualización de variables, que funciona de la siguiente manera:

    • Se actualiza la variable 1, quiere decir que se realiza la operación matemática con el valor 1 y el 2 (En el ejemplo expuesto, se trata de la suma , por lo tanto, los valores se adicionan). Este resultado se expresa a través del valor 3, y finalmente, para acumularlo en la variable principal, se iguala el valor 3 al 1.

    • Se actualiza la variable 2. Es decir que, cuando la variable 1 contenga el valor total acumulado, la variable 2 se iguala a cero, para que se pueda volver a usar en más operaciones.

Al final, regresamos a la función de los operandos, bien sea para realizar más operaciones o conocer el valor total de lo que hemos digitado. A continuación verás las líneas de código de los operandos restantes:


def resta():

    global val1
    global val2

    print(msg1)
    val2 = int(input(msg3))

    val3 = val1 - val2

    # Actualización de variable 1

val1 = val3

    # Actualización de variable 2

    val2 = 0

    operando_fun()

def multiplicacion():

    global val1
    global val2

    print(msg1)
    val2 = int(input(msg3))

    val3 = val1 * val2

    # Actualización de variable 1

    val1 = val3

    # Actualización de variable 2

    val2 = 0

    operando_fun()

def division():

    global val1
    global val2

    print(msg1)
    val2 = int(input(msg3))

    val3 = val1 / val2

    # Actualización de variable 1

    val1 = val3

    # Actualización de variable 2

    val2 = 0

    operando_fun()

Para la función de igual, simplemente obviamos el procedimiento de actualizar la variable 2, y ya que la variable 1 es la que contiene todo el valor total acumulado, se muestra mediante un print y un mensaje:

def igual():

    global val1
    global val2

    val3 = val1 + val2

    # Actualización de variable 1

    val1 = val3

    print('Acá está tu resultado')
    print(val1)

    calculadora()


La última línea de este código nos regresa al inicio, igualando la variable 1 a cero, para que podamos volver a usarla y hacer más operaciones distintas.

✧ Resultado final ✧