Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/08/2011, 07:47
markmb
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: Manejo de excepciones

Cita:
Iniciado por Bael_Balzac Ver Mensaje
Tengo el siguiente código:
Código:
while True:
    y0 = 0
    funcion = 0
    paso = 0
    while True:
        if y0 or funcion or paso == 'salir':
            break
        else:
            try:
                y0 = int(input('y0 = '))
                y = y0
                funcion = input('Función = ')
                paso = float(input('paso = '))
                iteraciones = int (1/paso)
                valor_actual = y0 + ( paso * funcion )
                for i in range (iteraciones):
                    valor_actual = valor_actual + ( paso * (- valor_actual ) )
                    print 'y'+str(i+1)+' '+'='+' '+str(valor_actual)
            except NameError:
                print 'Error no es válido'
            except ZeroDivisionError:
                print 'Error division entre 0'
Tecleando 'salir' deberia de terminar el programa pero muestra 'Error no es válido'.
Tambien como hago para que imprima en pantalla cada 100 valores,probe con range(0,iteraciones,100),ejemplo:
y0 = 1
Funcion = -y
paso = 0.001
Hay muchos fallos en este código:

  • Deberías usar raw_input, ya que con input, te pueden inyectar código
  • Si estas entrando los diferentes datos como float y como int, no podrás escribir "salir", no te lo va a aceptar
  • En el if de arriba, debería ser: if y0 == 'salir' or funcion == 'salir' or paso == 'salir'
  • Posiblemente (a mi me ocurre) en Función, en el input, te dará un error por el acento
  • Aparte de todo eso, no entiendo la finalidad del código
Saludos!
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....