Me dio por crear una calculadora y el código es el siguiente; sin embargo, creo que se puede acortar un poco más utilizando la función op...

Ricardo Mazuera

Ricardo Mazuera

Pregunta
student
hace 4 años

Me dio por crear una calculadora y el código es el siguiente; sin embargo, creo que se puede acortar un poco más utilizando la función operación para que elija el símbolo de la operación de una vez. Llevo intentando más de una hora y no he podido, ni he encontrado la respuesta en internet.

Alguno me puede ayudar?. Gracias.

def operacion (eleccion): print (f""" Elegiste {eleccion}, ahora dime los números para los que deseas hacer esa operación: """) number1 = int(input("""¿Cuál es el número 1?: """)) number2 = int(input("""¿Cuál es el número 2?: """)) if eleccion == "sumar": resultado = number1 + number2 elif eleccion == "restar": resultado = number1 - number2 elif eleccion == "multiplicar" == 3: resultado = number1 * number2 elif eleccion == "dividir": resultado = number1 / number2 print(f""" El resultado de {eleccion} {number1} entre {number2} es: {resultado}""") def run(): menu = int(input(""" BIENVENIDO A TU CALCULADORA VIRTUAL Elige qué quieres hacer... 1. Sumar 2. Restar 3. Multiplicar ✖️ 4. Dividir ¿Qué eliges?: """)) while menu != 1 and menu != 2 and menu !=3 and menu !=4: menu = int(input("Por favor escribe una opción correcta: ")) continue if menu == 1: operacion ("sumar") elif menu == 2: operacion ("restar") elif menu == 3: operacion ("multiplicar") elif menu == 4: operacion ("dividir") if __name__ == "__main__": run()
4 respuestas
    Kevin J. Zea Alvarado

    Kevin J. Zea Alvarado

    student
    hace 4 años

    Hola, Ricardo.

    ¿Qué es exactamente lo que quieres hacer? Por lo que veo, el código funciona, ¿no es así? Si es el caso, ¿qué buscas hacer?

    Ricardo Mazuera

    Ricardo Mazuera

    student
    hace 4 años

    Hola Kevin, gracias por responder.

    El código funciona perfectamente, así es; sin embargo, quisiera saber si puedo evitar esta parte que me parece muy repetitiva y vincularla en la función operacion.

    if eleccion == "sumar": resultado = number1 + number2 elif eleccion == "restar": resultado = number1 - number2 elif eleccion == "multiplicar" == 3: resultado = number1 * number2 elif eleccion == "dividir": resultado = number1 / number2

    Algo así como:

    def operacion (eleccion, simbolo):

    dentro de los if del run pondría en cada uno "+", "-", "*", "/" dependiendo de cuál sea el necesario y en la definición la operación se haría dentro del mismo print, algo así como:

    resultado = number1 + simbolo + number2

    el error radica en que símbolo está como un str y no se cómo ponerlo para que quede operable ante los números.

    No sé si me ya es bobada mía y el código que tengo está bien o si haya una manera de recortarlo de la manera que expongo.

    Kevin J. Zea Alvarado

    Kevin J. Zea Alvarado

    student
    hace 4 años

    Ya entiendo.

    Justo hubo una vez que hice éste mismo ejercicio, e igual con Python, y me preguntaba cómo debería manejar los bloques de código, o si debería separarlos en funciones.

    Lo que alcanzo ver ahorita es que podrías cambiarlo por:

    def run(): choice = input(""" BIENVENIDO A TU CALCULADORA VIRTUAL Elige qué quieres hacer... Si quieres sumar, escribe: + Si quieres restar, escribe: - Si quieres multiplicar, escribe: * Si quieres dividir, escribe: / ¿Qué eliges?: """) while choice != "+" and choice != "-" and choice != "*" and choice != "/": choice = input("Por favor, escribe una opción correcta: ") continue operacion(choice)

    Y luego adaptar esta parte por:

    if eleccion == "+": resultado = number1 + number2 elif eleccion == "-": resultado = number1 - number2 elif eleccion == "*": resultado = number1 * number2 elif eleccion == "/": resultado = number1 / number2

    Por lo menos, así te evitas un condicional y sólo mandas el resultado directo, y dentro de la función

    operacion()
    manejas lo que puso el usuario.

    Ricardo Mazuera

    Ricardo Mazuera

    student
    hace 4 años

    Bueno sí, esa es una buena posibilidad Kevin, muchas gracias por tu ayuda y mostrarme otra forma de crear la calculadora.

Curso Básico de Python [Empieza Gratis]

Curso Básico de Python [Empieza Gratis]

Aprende a programar desde cero con el lenguaje de mayor crecimiento en el planeta: Python. Descubre qué es un algoritmo y cómo se construye uno. Domina las variables, funciones, estructuras de datos, los condicionales y ciclos.

Curso Básico de Python [Empieza Gratis]
Curso Básico de Python [Empieza Gratis]

Curso Básico de Python [Empieza Gratis]

Aprende a programar desde cero con el lenguaje de mayor crecimiento en el planeta: Python. Descubre qué es un algoritmo y cómo se construye uno. Domina las variables, funciones, estructuras de datos, los condicionales y ciclos.