es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Operación matemática en una sola entrada.

Soy un principiante en Python y estoy tratando de hacer una calculadora que en lugar de pedirle al usuario que ingrese primero un número, luego un operador y luego otro número para devolver el resultado, el usuario pueda ingresar cosas como por ejemplo 3 * 3 en una sola entrada para que la computadora devuelva 9.

num1 = float(input(“Ingrese un número: “))
op = input(“Ingrese un operador: “)
num2 = float(input(“Ingrese otro número: “))

if op == “+”:
print(num1 + num2)
elif op == “-“:
print(num1 – num2)
elif op == “*”:
print(num1 * num2)
elif op == “/”:
print(num1 / num2)

else:
print(“Ingrese un operador válido…”)

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para modificar el código dado para que el usuario pueda ingresar una expresión completa de una sola vez, podemos utilizar la función eval(). Esta función toma una cadena que contiene una expresión de Python y la evalúa. Aquí está el código modificado:

    expr = input("Ingrese una expresión: ")
    result = eval(expr)
    print(result)
    

    Este código le pide al usuario que ingrese una expresión, que puede incluir cualquier operador o función de Python válido. La función eval() luego evalúa la expresión y asigna el resultado a la variable result, que luego se imprime.

    Por ejemplo, si el usuario ingresa 3 * 3, la salida será 9. Del mismo modo, si el usuario ingresa abs(-5), la salida será 5. Tenga en cuenta que este enfoque es más flexible que usar un conjunto fijo de operadores, pero también puede ser más peligroso si el usuario puede ingresar código arbitrario. Para hacer que el código sea más seguro, puede usar la función ast.literal_eval() en lugar de eval(), que solo acepta expresiones literales para que no se pueda ejecutar código arbitrario.

Comments are closed.