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…”)
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: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 variableresult
, que luego se imprime.Por ejemplo, si el usuario ingresa
3 * 3
, la salida será9
. Del mismo modo, si el usuario ingresaabs(-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ónast.literal_eval()
en lugar deeval()
, que solo acepta expresiones literales para que no se pueda ejecutar código arbitrario.