Fonctions

Qu'est-ce qu'une fonction ?

On reprend le QCM de la partie précédente, mais on aimerait mettre cette fois-ci plusieurs questions. Le code est alors le suivant.

print("Qui a dirigé l'équipe qui a écrit le système embarqué d'Apollo 11 ?")
print("1. Grace Hopper")
print("2. Mae Jemison")
print("3. Margaret Hamilton")
print("4. Steve Jobs")

reponse = 0
while reponse != 3:
    reponse = int(input("Entrez le numéro de votre réponse. "))

print("Bravo !")

print("Qui a réussi à « casser » la machine Enigma, utilisée par les Allemands pour chiffrer des messages durant la seconde guerre mondiale ?")
print("1. Alan Turing")
print("2. Auguste Kerckhoffs")
print("3. Bertrand Russel")
print("4. Kurt Gödel")

reponse = 0
while reponse != 1:
    reponse = int(input("Entrez le numéro de votre réponse. "))

print("Bravo !")

print("Qui est considéré comme l'inventeur du web ?")
print("1. Louis Pouzin")
print("2. Radia Perlman")
print("3. Tim Berners-Lee")
print("4. Vint Cerf")

reponse = 0
while reponse != 3:
    reponse = int(input("Entrez le numéro de votre réponse. "))

print("Bravo !")

Nous remarquons que la boucle while (qui demande et attend la réponse) est répétée plusieurs fois. Pour éviter cette répétition, nous pouvons l'écrire une seule fois dans une fonction.

def question(n):
  reponse = 0
  while reponse != n:
      reponse = int(input("Entrez le numéro de votre réponse. "))

  print("Bravo !")

print("Qui a dirigé l'équipe qui a écrit le système embarqué d'Apollo 11 ?")
print("1. Grace Hopper")
print("2. Mae Jemison")
print("3. Margaret Hamilton")
print("4. Steve Jobs")

question(3)

print("Qui a réussi à « casser » la machine Enigma, utilisée par les Allemands pour chiffrer des messages durant la seconde guerre mondiale ?")
print("1. Alan Turing")
print("2. Auguste Kerckhoffs")
print("3. Bertrand Russel")
print("4. Kurt Gödel")

question(1)

print("Qui est considéré comme l'inventeur du web ?")
print("1. Louis Pouzin")
print("2. Radia Perlman")
print("3. Tim Berners-Lee")
print("4. Vint Cerf")

question(3)

Une fonction est un sous-programme qui peut être appelé plusieurs fois dans le programme principal. Ici, la fonction s'appelle question et prend comme argument le nombre n (qui est le numéro de la bonne réponse). Lorsque le programme principal appelle question(3), le code de la fonction question (à partir de la ligne def question(n):) est appliqué, en remplaçant n par 3.

Moyenne

Recopiez (ou téléchargez) le programme suivant, qui demande deux nombres et affiche leur moyenne.

def moyenne(a, b):
    return (a + b) / 2

nombre1 = float(input("Nombre 1 ? "))
nombre2 = float(input("Nombre 2 ? "))
print("La moyenne des nombres est", moyenne(nombre1, nombre2))

Modifiez ce programme pour qu'il demande et affiche la moyenne de trois nombres.

Minimum

Écrivez une fonction minimum qui prend deux nombres, et renvoit le plus petit des deux.

def minimum(a, b):
  if XXX:
    return a
  else:
    XXX

print("Le minimum de 3 et 8 est", minimum(3, 8))
print("Le minimum de 42 et 1729 est", minimum(42, 1729))
print("Le minimum de 123 et 123 est", minimum(123, 123))

Fin

  1. ✋ Appelez le professeur pour vérifier votre travail.
  2. En attendant qu'il arrive, commencez le TP suivant.