# 🧬 Exercices Python pour Biologistes **[Thème : listes, tuples, range, boucles for et while]** ## 🧪 Exercice 1 — Générateur de séquences ADN **Objectif :** Créer une séquence ADN aléatoire de longueur donnée. **Énoncé :** Demandez à l’utilisateur la longueur d’une séquence d’ADN, puis générez une séquence contenant uniquement les bases `A`, `T`, `C`, `G`. Utilisez une **liste** pour stocker les bases et une **boucle for** pour construire la séquence. **Exemple de sortie :** ``` Longueur de la séquence : 10 Séquence générée : ATGCTAGTCA ``` <details> <summary>✅ Correction</summary> ```python import random bases = ['A', 'T', 'C', 'G'] longueur = int(input("Longueur de la séquence : ")) sequence = [] for i in range(longueur): sequence.append(random.choice(bases)) print("Séquence générée :", ''.join(sequence)) ``` </details> --- ## 🐍 Exercice 2 — Le serpent affamé **Objectif :** Utiliser une **boucle while** pour vider une liste. **Énoncé :** Un serpent se promène dans la jungle et mange les animaux qu’il trouve. Les animaux sont dans une liste : `['grenouille', 'souris', 'oiseau', 'lapin']`. Le serpent mange un animal à la fois jusqu’à ce qu’il n’en reste plus. **Exemple de sortie :** ``` Le serpent mange grenouille ! Le serpent mange souris ! Le serpent mange oiseau ! Le serpent mange lapin ! Plus d’animaux, le serpent est rassasié ! ``` <details> <summary>✅ Correction</summary> ```python animaux = ['grenouille', 'souris', 'oiseau', 'lapin'] while animaux: animal = animaux.pop(0) print(f"Le serpent mange {animal} !") print("Plus d’animaux, le serpent est rassasié !") ``` </details> --- ## 🌿 Exercice 3 — Croissance cellulaire dans une boîte de Petri **Objectif :** Utiliser une **boucle while** et la fonction **range**. **Énoncé :** Une cellule se divise à chaque pas de temps. Affichez le nombre de cellules à chaque étape jusqu’à ce qu’elles dépassent 1000. **Exemple de sortie :** ``` Temps 0 : 1 cellule Temps 1 : 2 cellules Temps 2 : 4 cellules ... Temps 10 : 1024 cellules Trop de cellules ! Expérience arrêtée. ``` <details> <summary>✅ Correction</summary> ```python cellules = 1 temps = 0 while cellules <= 1000: print(f"Temps {temps} : {cellules} cellules") cellules *= 2 temps += 1 print("Trop de cellules ! Expérience arrêtée.") ``` </details> --- ## 🧫 Exercice 4 — Collecteur d’échantillons **Objectif :** Manipuler des **tuples** et **listes**, avec une **boucle for**. **Énoncé :** Vous devez collecter un certain nombre d’échantillons biologiques. Les espèces possibles sont : `('bactérie', 'champignon', 'algue', 'levure', 'virus')` Demandez à l’utilisateur combien d’échantillons il veut, puis sélectionnez aléatoirement des espèces et stockez-les dans une liste. **Exemple de sortie :** ``` Combien d’échantillons collecter ? 5 Échantillons collectés : ['levure', 'bactérie', 'virus', 'algue', 'champignon'] ``` <details> <summary>✅ Correction</summary> ```python import random especes = ('bactérie', 'champignon', 'algue', 'levure', 'virus') n = int(input("Combien d’échantillons collecter ? ")) echantillons = [] for i in range(n): echantillons.append(random.choice(especes)) print("Échantillons collectés :", echantillons) ``` </details> --- ## 🧠 Exercice 5 — L’évasion du microbe **Objectif :** Utiliser une **boucle while** avec saisie utilisateur. **Énoncé :** Un microbe tente de s’échapper du laboratoire. Il commence à la position 0 et doit atteindre la position 10. Demandez à l’utilisateur à chaque étape s’il veut avancer à droite ou à gauche. **Exemple de sortie :** ``` Position du microbe : 0 Déplacement (gauche/droite) ? droite Position du microbe : 1 Déplacement (gauche/droite) ? droite ... Le microbe s’est échappé ! 🎉 ``` <details> <summary>✅ Correction</summary> ```python position = 0 while position < 10: print(f"Position du microbe : {position}") deplacement = input("Déplacement (gauche/droite) ? ").lower() if deplacement == "droite": position += 1 elif deplacement == "gauche" and position > 0: position -= 1 elif deplacement == "stop": print("Expérience interrompue par l'utilisateur.") break else: print("Déplacement invalide ou impossible.") print("Le microbe s’est échappé ! 🎉") ``` </details>