# Une solution possible
def somme(nombre1, nombre2, nombre3):
"""
La fonction calcule la somme de trois nombres données en paramètre
@param nombre1: (float) nombre réel
@param nombre2: (float) nombre réel
@param nombre3: (float) nombre réel
@return: (float) la fonction renvoie la somme des nombres nombre1, nombre2 et nombre3
"""
resultat = nombre1 + nombre2 + nombre3
return resultat
# Jeu d'essai
print("Pass test1 --> ",somme(1, 5, 7) == 13)
print("Pass test2 --> ",int(somme(1.2, -6, 5)*10) == 2)
# Une autre solution possible
def somme1(nombre1, nombre2, nombre3):
"""
La fonction calcule la somme de trois nombres données en paramètre
@param nombre1: (float) nombre réel
@param nombre2: (float) nombre réel
@param nombre3: (float) nombre réel
@return: (float) la fonction renvoie la somme des nombres nombre1, nombre2 et nombre3
"""
return nombre1 + nombre2 + nombre3
# Jeu d'essai
print("Pass test1 --> ",somme(1, 5, 7) == 13)
print("Pass test2 --> ",int(somme(1.2, -6, 5)*10) == 2)
Écrire une fonction mention()
qui à partir d’une note renvoie la mention correspondant (None,P,AB,B,TB)
# Une solution possible
# Ici on utlise un seul return, la réponse est est stockée dans une variable qui est retournée à la fin.
def mention(note):
"""
La fonction détermine la mention pour une note donnée en paramaètre
@param note: (float) nombre réel
@return: (string) la fonction renvoie la mention
"""
assert 0 <= note and note <= 20, "La note doit être comprise entre 0 et 20 inclus"
if 0 <= note < 10:
resultat = None
elif note < 12:
resultat = "P"
elif note < 14:
resultat = "AB"
elif note < 16:
resultat = "B"
elif 16 <= note <= 20:
resultat = "TB"
return resultat
# Jeu d'essai
print("Pass test1 --> ",mention(8) == None)
print("Pass test2 --> ",mention(10) == "P")
print("Pass test3 --> ",mention(11) == "P")
print("Pass test4 --> ",mention(12) == "AB")
print("Pass test5 --> ",mention(13) == "AB")
print("Pass test6 --> ",mention(14) == "B")
print("Pass test7 --> ",mention(15) == "B")
print("Pass test8 --> ",mention(16) == "TB")
print("Pass test9 --> ",mention(18) == "TB")
# Une autre solution
# Ici on utlise un return après chaque condition.
def mention(note):
"""
La fonction détermine la mention pour une note donnée en paramaètre
@param note: (float) nombre réel
@return: (string) la fonction renvoie la mention
"""
assert 0 <= note and note <= 20, "La note doit être comprise entre 0 et 20 inclus"
if 0 <= note < 10:
return None
elif note < 12:
return "P"
elif note < 14:
return "AB"
elif note < 16:
return "B"
elif 16 <= note <= 20:
return "TB"
# Jeu d'essai
print("Pass test1 --> ",mention(8) == None)
print("Pass test2 --> ",mention(10) == "P")
print("Pass test3 --> ",mention(11) == "P")
print("Pass test4 --> ",mention(12) == "AB")
print("Pass test5 --> ",mention(13) == "AB")
print("Pass test6 --> ",mention(14) == "B")
print("Pass test7 --> ",mention(15) == "B")
print("Pass test8 --> ",mention(16) == "TB")
print("Pass test9 --> ",mention(18) == "TB")
Écrire une fonction fizzbuzz(n)
qui renvoie :
la chaîne "Fizz" si le nombre est un multiple de 3.
la chaîne "Buzz" si le nombre est un multiple de 5.
None sinon.
# Une solution possible.
# Mais cette fonction ne traite pas le cas ou un nombre est à la fois divisible par 3 et 5.
#On devrait avoir 'FizzBuzz' ou 'BuzzFizz' en retour
def fizzbuzz1(nombre):
"""
La fonction détermine si un nombre est divisible par 3 et 5
@param nombre: (int) entier naturel
@return: (string) la fonction renvoie une chaine de caractère si divisible par 3 ou 5 sinon ne retourne rien
"""
assert nombre >= 0 and isinstance(nombre, int),"Vous devez entrer un entier naturel"
if nombre % 3 == 0:
return "Fizz"
elif nombre % 5 == 0:
return "Buzz"
else:
return None
# Jeu d'essai
print("Pass test1 --> ",fizzbuzz1(1) == None)
print("Pass test2 --> ",fizzbuzz1(3) == "Fizz")
print("Pass test3 --> ",fizzbuzz1(5) == "Buzz")
print("Pass test4 --> ",fizzbuzz1(6) == "Fizz")
print("Pass test5 --> ",fizzbuzz1(7) == None)
# Autre solution plus complète
def fizzbuzz(nombre):
"""
La fonction détermine si un nombre est divisible par 3 et 5
@param nombre: (int) entier naturel
@return: (string) la fonction renvoie une chaine de caractère si divisible par 3 ou 5 sinon ne retourne rien
"""
assert nombre >= 0 and isinstance(nombre, int),"Vous devez entrer un entier naturel"
chaine = ""
if nombre % 3 == 0:
chaine = chaine + "Fizz"
if nombre % 5 == 0:
chaine = chaine + "Buzz"
elif nombre % 5 == 0:
chaine = chaine + "Buzz"
else:
chaine = None
return chaine
# Jeu d'essai
print("Pass test1 --> ",fizzbuzz(1) == None)
print("Pass test2 --> ",fizzbuzz(3) == "Fizz")
print("Pass test3 --> ",fizzbuzz(5) == "Buzz")
print("Pass test4 --> ",fizzbuzz(6) == "Fizz")
print("Pass test5 --> ",fizzbuzz(7) == None)
# Pour nombre = 15 . Nombre divisible par 3 et par 5
print(fizzbuzz(15))
Écrire une fonction fizzbuzz100()
utilisant la fonctionfizzbuzz()
de l'exercice pécédent.
Cette fonction fizzbuzz100
énumère les nombres de 1 à 100 et affiche :
1:None, 2:None, 3:Fizz, 4:None, 5:Buzz, 6:Fizz, 7:None, ... etc jusqu'à 100
# Une solution possible
def fizzbuzz100():
for nombre in range (1, 101):
print(f"{nombre} : {fizzbuzz(nombre)}")
fizzbuzz100()