Problema con python
Publicado por Miguel (1 intervención) el 11/09/2013 04:09:42
Hola amigos de la web del programador:
Les cuento, estoy iniciandome en la programación y he decidido comenzar con python, el punto es que estoy en la construcción de mi primer programa que consiste en una herramienta para obtener los valores de la funcion cuadrática...
El problema es cuando quiero que python reconozca un valor errado al momento de tener que ingresar los valores, y en vez de arrojar un error de valor tome el bucle y vuelva a intentarlo. Lo que no se exactamente es como decirle que si ingresa un valor !n de un numero entero tome el bucle...
Les dejo el código a ver si pueden ayudarme, y también si me pueden hacer alguna otra crítica u aporte para continuar mejorando (y no sean duros es la primera vez que programo xD):
Les cuento, estoy iniciandome en la programación y he decidido comenzar con python, el punto es que estoy en la construcción de mi primer programa que consiste en una herramienta para obtener los valores de la funcion cuadrática...
El problema es cuando quiero que python reconozca un valor errado al momento de tener que ingresar los valores, y en vez de arrojar un error de valor tome el bucle y vuelva a intentarlo. Lo que no se exactamente es como decirle que si ingresa un valor !n de un numero entero tome el bucle...
Les dejo el código a ver si pueden ayudarme, y también si me pueden hacer alguna otra crítica u aporte para continuar mejorando (y no sean duros es la primera vez que programo xD):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import math
#introduccion
print chr(27)+"[1;96m"+""
print """
========================================
| |\/| _ _|_ _ _ _ _ _|_. _ _ _ |
| | |(_| | (/_| | |(_| | |(_(_|_\ |
========== funcion cuadratica ==========
"""
print chr(27)+"[0;96m"+" "
print 'Esta herramienta permite derteminar las intersecciones con el eje X e Y'
print ' ademas de la conacvidad en la variable independiente (ax2+bx+c)'
print ' identifique e ingrese los coeficientes de la funcion (a, b y c)'
print ' Debe ingresar solo numeros enteros'
print chr(27)+"[1;36m"+" "
#bucle
while 1:
#Consulta de valores necesarios
while 2:
a = float(raw_input('Ingrese el valor de a: '))
b = float(raw_input('Ingrese el valor de b: '))
c = float(raw_input('Ingrese el valor de c: '))
if a != #AQUIIII ESTA EL PROBLEMAAAAA !!!!
print 'Ingrese solo numeros enteros'
print ' '
#Aqui se determina la concavidad
valora = a
if valora > 0:
print '> La concavidad es positiva y la parabola se abre hacia arriba'
print ' '
if valora < 0:
print '> La concavidad es negativa y la parabola se abre hacia abajo'
print ' '
#Aqui se calcula la discriminante y la cuadratica, y por lo tanto las intersecciones con X
discriminante = b ** 2 - 4 * a * c
print '> El valor de la discriminante es', discriminante
print ' '
if discriminante < 0:
print '> Las soluciones son complejas conjugadas y no hay interseccion con el eje X'
print ' '
elif discriminante == 0:
x = -b / (2 * a)
print '> Las soluciones son reales e iguales y haun una sola interseccion que es x =', x
print ' '
else:
x1 = (-b - (discriminante ** 0.5)) / (2 * a)
x2 = (-b + (discriminante ** 0.5)) / (2 * a)
print '> Las soluciones son reales y distintas por lo tanto hay dos intersecciones:'
print ' x1 =', x1
print ' x2 =', x2
print ' '
#Aqui se calcula la interseccion con el eje Y y el vertice
print '> El punto de interseccion con el eje Y es:', c
print ' '
print '> El vertice es', ( - b / (2 * a) , - discriminante / (4 * a) )
print ' '
if a < 0:
print '>', - discriminante / (4 * a), 'Es el minimo de la funcion'
print ' '
if a > 0:
print '>', - discriminante / (4 * a), 'Es el maximo de la funcion'
print ' '
#Aqui se realiza la consulta de salida
while 3:
print ' '
print '> Desea resolver otro ejercicio? (s/n)'
deseo = raw_input()
print ' '
if deseo.lower()=='n':
print chr(27)+"[0;96m"+" > > > Hasta pronto! < < <"
break
if deseo.lower()!='n':
print 'Letra incorrecta, vuelve a intentarlo'
Valora esta pregunta


0