The lac operon allows E. coli to metabolize lactose as an energy source when glucose is unavailable. It contains three structural genes—lacZ, lacY, and lacA—that are expressed together under the control of a single promoter. When lactose is present, it binds to the lac repressor and induces expression of the genes. However, in the presence of glucose, catabolite repression by cAMP prevents expression even if lactose is available. The lac operon was the first genetic regulatory mechanism to be understood and demonstrated negative regulation through a repressor protein.