Buenas..
estoy teniendo un problema bastante estupido pero me tiene detenido el programa, ya he tratado todo lo que se me ha ocurrido y no logro corregirlo, por lo que quisiera que le den un vistazo al codigo a ver cual es el problema:
Código Python:
Ver original###Factores de friccion en turbulencia total para los distintos diametros
###nominales de los accesorios
#Variable = ((mm),(inch),(ft))
ft_tabla = ((15.0, 0.5, 0.027),
(20.0, 0.75, 0.025),
(25.0, 1.0, 0.023),
(32.0, 1.25, 0.022),
(40.0, 1.5, 0.021),
(50.0, 2.0, 0.019),
(65.0, 2.5, 0.018),
(80.0, 3.0, 0.018),
(100.0, 4.0, 0.017),
(125.0, 5.0, 0.016),
(150.0, 6.0, 0.015),
(200.0, 8.0, 0.014),
(250.0, 10.0, 0.014),
(300.0, 12.0, 0.013),
(400.0, 16.0, 0.013),
(450.0, 18.0, 0.012),
(600.0, 24.0, 0.012))
def FtMilimetros(D):
"""Funcion para obtener el valor del factor de turbulencia total a partir
del diametro nominal en milimetros del accesorio
Xmm = diametro nominal (mm)
"""
## print "1"
for x in ft_tabla:
## print "2"
if x[0] >= D:
## print "3"
## print "4"
ft = x[-1]
## print "5"
return ft
else:
## print "6"
return None
da = 150 #Diametro de valvula
ft = FtMilimetros(da)
print ft
El programa basicamente lo que hace es iterar a traves de "
ft_tabla" comparando el primer valor de cada tupla dentro de "
ft_tabla" con un valor predeterminado (
da) y si el valor es mayor o igual que "
da" entonces asigna el ultimo valor de dicha tupla a la variable
ft...
hasta aqui todo bien, el problema es que a pesar que de existen valores mayores a "
da" (150) el programa no asigna ningun valor a
ft y ejecuta el bloque "
else"..
si anulamos la parte del "
else" entonces el codigo funciona correctamente:
Código Python:
Ver original###Factores de friccion en turbulencia total para los distintos diametros
###nominales de los accesorios
#Variable = ((mm),(inch),(ft))
ft_tabla = ((15.0, 0.5, 0.027),
(20.0, 0.75, 0.025),
(25.0, 1.0, 0.023),
(32.0, 1.25, 0.022),
(40.0, 1.5, 0.021),
(50.0, 2.0, 0.019),
(65.0, 2.5, 0.018),
(80.0, 3.0, 0.018),
(100.0, 4.0, 0.017),
(125.0, 5.0, 0.016),
(150.0, 6.0, 0.015),
(200.0, 8.0, 0.014),
(250.0, 10.0, 0.014),
(300.0, 12.0, 0.013),
(400.0, 16.0, 0.013),
(450.0, 18.0, 0.012),
(600.0, 24.0, 0.012))
def FtMilimetros(D):
"""Funcion para obtener el valor del factor de turbulencia total a partir
del diametro nominal en milimetros del accesorio
Xmm = diametro nominal (mm)
"""
## print "1"
for x in ft_tabla:
## print "2"
if x[0] >= D:
## print "3"
## print "4"
ft = x[-1]
## print "5"
return ft
## else:
## print "6"
## return None
da = 150 #Diametro de valvula
ft = FtMilimetros(da)
print ft
entonces no entiendo porque cuando el "
else" esta descomentado, el programa no funciona correctamente :S