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