Exercise 3 solution def dna_bytes(bases, bits_per_base=2): return bases * bits_per_base / 8 genomes = {"human (haploid)": 3_100_000_000, "pea (haploid)": 4_500_000_000, "fruit fly (haploid)": 140_000_000} for name, n in genomes.items(): print(name, round(dna_bytes(n) / 1e6, 1), "MB") print(round(dna_bytes(3_100_000_000, 8) / 1e9, 2), "GB at 8 bits per base") Output: human (haploid) 775.0 MB pea (haploid) 1125.0 MB fruit fly (haploid) 35.0 MB 3.1 GB at 8 bits per base Reading it: with 2 bits per base the human haploid genome is about 775 MB, and storing one 8-bit character per base quadruples that to 3.1 GB. The genome sizes used (3.1 billion, 4.5 billion, 140 million) are rounded figures from general knowledge (check). Note that the pea figure is larger than the human one: genome size does not track complexity.