Ayudenme con este codigo

Cerrado
Franche221 - 1 feb 2021 a las 07:13
misterdekus Mensajes enviados 473 Fecha de inscripción miércoles, 10 de enero de 2018 Estatus Miembro Última intervención miércoles, 27 de julio de 2022 - 4 feb 2021 a las 19:10
Buenas a todos!
Espero que la esten pasado bien
Me gustaría que me ayuden con este código (código no completo) con el que estoy teniendo problemas.
Lo que me trae problemas es la variable "ans" en la función calculos2, cuando voy a seguir calculando (cuando presiono "y") e introduzco "el siguiente numero" - como dice el programa - no me hace la cuenta porque dice que la variable ans no esta definida.
CODIGO:
def calculos(num1, op, num2):
if op == '+':
ans = num1 + num2
print(f"{num1} {op} {num2} = {ans}")
elif op == '-':
ans = num1 - num2
print(f"{num1} {op} {num2} = {ans}")
elif op == '*':
ans = num1 * num2
print(f"{num1} {op} {num2} = {ans}")
elif op == '/':
ans = num1 / num2
print(f"{num1} {op} {num2} = {ans}")
else:
print("Lo lamento, ese operador no esta disponible :C")
print("Intentalo de nuevo:")
print("+\n-\n*\n/\n")
op = str(input("Elige una operacion: "))
num2 = int(input("Segundo numero: "))
if op == '+':
ans = num1 + num2
print(f"{num1} {op} {num2} = {ans}")
elif op == '-':
ans = num1 - num2
print(f"{num1} {op} {num2} = {ans}")
elif op == '*':
ans = num1 * num2
print(f"{num1} {op} {num2} = {ans}")
elif op == '/':
ans == num1 / num2
print(f"{num1} {op} {num2} = {ans}")


def calculos2(num1, num2, num3, op2, calculos, ans):
if op2 == '+':
ans = num1 + num2
newans = ans + num3
print(f"{num3} {op2} {ans} = {newans}")
elif op2 == '-':
newans = ans - num3
print(f"{num3} {op2} {ans} = {newans}")
elif op2 == '*':
newans = ans * num3
print(f"{num3} {op2} {ans} = {newans}")
elif op2 == '/':
newans = ans / num3
print(f"{num3} {op2} {ans} = {newans}")
else:
print("Lo lamento, ese operador no esta disponible :C")
print("Intentalo de nuevo:")
print("+\n-\n*\n/\n")
op = str(input("Elige una operacion: "))
num2 = int(input("Segundo numero: "))
if op == '+':
print(f"{num1} {op} {num2} = {ans}")
elif op == '-':
ans = num1 - num2
print(f"{num1} {op} {num2} = {ans}")
elif op == '*':
ans = num1 * num2
print(f"{num1} {op} {num2} = {ans}")
elif op == '/':
ans == num1 / num2
print(f"{num1} {op} {num2} = {ans}")

num1 = float(input("Primer numero: "))

print()

print("+\n-\n*\n/\n")
op = str(input("Elige una operacion: "))
num2 = float(input("Segundo numero: "))

calculos(num1, op, num2)

seguir = 'y'
seguir = str(input("Presione 'y' para seguir calculando, 'n' para hacer otro calculo y 'f' para salir: "))
while True:
print("+\n-\n*\n/\n")
op2 = str(input("Elige una operacion: "))
num3 = float(input("Siguiente numero: ")) #Aquí se me tranca, me sale el error
calculos2(num1, num2, num3, op2, calculos, ans)
seguir = 'y'
seguir = str(input("Presione 'y' para seguir calculando, 'n' para hacer otro calculo y 'f' para salir: "))

El error que me sale: Traceback (most recent call last): File "C:\Users\por aqui toda la ubicacion bla bla bla \Calculator.py", line 102, in <module> calculos2(num1, num2, num3, op2, calculos, ans) NameError: name 'ans' is not defined
Estaría encantado y agradecido si me podrían aportar posibles soluciones o decirme de que mera lo podría solucionar.
Saludos

1 respuesta

misterdekus Mensajes enviados 473 Fecha de inscripción miércoles, 10 de enero de 2018 Estatus Miembro Última intervención miércoles, 27 de julio de 2022 127
4 feb 2021 a las 19:10
No soy experto en python , pero por el error que maca "NameError: name 'ans' is not defined"
no esta definida la variable "ans", checa bien las variables de calculos2
0