Soy nuevo en Python.... pero llamar a main() desde main() no es recursivo como si fuera en otro lado ? yo lo haria con un while(..)
Cita:
Iniciado por sukoy def main():
'''comprueba los datos, si son validos lanza la funcion calcular_imc
si no vuelve a lanzar la funcion main'''
m, a = get_data()
lista_datos_validos = [...]
if m in lista_datos_validos:
print calcular_imc(m, a)
else:
print 'intenta de nuevo'
main()
main()[/HIGHLIGHT]
Por otro lado las funciones no deberian devolver un texto sino ser lo mas generales posibles y devolver solo lo que calculan y mas si se llaman calcular_algo()
def calcular_imc(m, a):
''' haz los calculos '''
. . .
return 'Su IMC es x...'
deberia ser.:
def calcular_imc(m, a):
''' haz los calculos '''
. . .
return imc
y en main() redactar el mesaje al usuario