The lac operon controls genes involved in lactose metabolism in E. coli. It consists of three structural genes - lacZ, lacY, and lacA - that are regulated by a single promoter. Expression of the lac genes is controlled by the lac repressor protein, which binds to the operator region and blocks transcription unless lactose is present. When lactose is detected, it causes an allosteric change in the repressor, releasing it from the operator and allowing transcription. Glucose also prevents expression through catabolite repression by inhibiting the activator protein required for stable transcription initiation.