Exercices Python - Correction -

Exercice 1

Écrire une fonction somme() qui renvoie la somme de trois valeurs passées en paramètres.

In [ ]:
# Une solution possible

def somme(nombre1, nombre2, 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)
In [ ]:
# Une autre solution possible

def somme1(nombre1, nombre2, 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)

Exercice 2

Écrire une fonction mention() qui à partir d’une note renvoie la mention correspondant (None,P,AB,B,TB)

In [ ]:
# Une solution possible

def mention(note):
    if 0 <= note < 10:
        resultat = None
    elif 10 <= note < 12:
        resultat = "P"
    elif 12 <= note < 14:
        resultat = "AB"
    elif 14 <= 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")

Exercice 3

Écrire une fonction minimum() qui renvoie la plus petite valeur des 2 valeurs passées en paramètres.

In [ ]:
# Une solution possible

def minimum(a, b):
    if a < b:
        valeur = a
    else:
        valeur = b
    return valeur   
    
# Jeu d'essai
print("Pass test1 --> ",min(10,15)==10)
print("Pass test2 --> ",min(11,9)==9)
print("Pass test3 --> ",min(12,12)==12)

Exercice 4

É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.

In [ ]:
# Une solution possible

def fizzbuzz(nombre):
    if nombre % 3 == 0:
        chaine = "Fizz"
    elif nombre % 5 == 0:
        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)

Exercice 5

É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

In [ ]:
# Une solution possible
def fizzbuzz100():
    for elt in range (1, 101):
        print(f"{elt} : {fizzbuzz(elt)}")

fizzbuzz100()

Exercice 6

Écrire une fonction min2() qui renvoie les 2 plus petites valeurs (sous forme d'un 2 t-uple) des 3 valeurs passées en paramètres.
Les 2 valeurs du t-uple retourné seront elles même ordonnées par ordre croissant.

In [ ]:
# Une solution possible

def min2 (nombre1, nombre2, nombre3):
    couple = sorted((nombre1, nombre2, nombre3))
    # print(liste)
    return couple[0], couple[1]
     
# Jeu d'essai
print("Pass test1 --> ",min2(1,2,3) == (1,2))
print("Pass test2 --> ",min2(1,3,2) == (1,2))
print("Pass test3 --> ",min2(2,1,3) == (1,2))
print("Pass test4 --> ",min2(2,3,1) == (1,2))
print("Pass test5 --> ",min2(3,1,2) == (1,2))
print("Pass test6 --> ",min2(3,2,1) == (1,2))
print("Pass test7 --> ",min2(2,2,2) == (2,2))
print("Pass test8 --> ",min2(3,3,4) == (3,3))

Exercice 7

Écrire une fonction reverso() qui renvoie le mot donné en paramètre à l'envers.

In [ ]:
# Une solution possible

def reverso(mot):
    return mot[::-1]
    
# Jeu d'essai
print("Pass test1 --> ",reverso("") == "")
print("Pass test2 --> ",reverso("a") == "a")
print("Pass test3 --> ",reverso("bonjour") == "ruojnob")
print("Pass test4 --> ",reverso("aa") == "aa")
print("Pass test5 --> ",reverso("laval") == "laval")

Exercice 8

Écrire une fonction palindrom() utilisant la fonction reverso() et qui renvoie True si le mot passé en paramètre est un palindrome.

In [ ]:
# Une solution possible

def palindrome(mot):
    test = False
    if reverso(mot) == mot and mot !="":
        test = True
    return test
      
# Jeu d'essai
print("Pass test1 --> ",palindrome("") == False)
print("Pass test2 --> ",palindrome("a") == True)
print("Pass test3 --> ",palindrome("bonjour") == False)
print("Pass test4 --> ",palindrome("aa") == True)
print("Pass test5 --> ",palindrome("laval") == True)
In [ ]:
# Une autre solution possible

def palindrome(mot):
    
    if reverso(mot) == mot and mot !="":
        test = True
    else:
        test = False
    return test
     
# Jeu d'essai
print("Pass test1 --> ",palindrome("") == False)
print("Pass test2 --> ",palindrome("a") == True)
print("Pass test3 --> ",palindrome("bonjour") == False)
print("Pass test4 --> ",palindrome("aa") == True)
print("Pass test5 --> ",palindrome("laval") == True)

Exercice 9

Écrire une fonction firstlast(mot) qui renvoie un 2 t-uple composé du premier et du dernier caractères du mot passé en paramètre.

In [ ]:
# Une solution possible

def firstlast(mot):
    # On regarde si le mot a moins de deux lettres
    long = len(mot)
    if 0 <= long <= 1:
        result = None
    else:
        result = (mot[0], mot[-1])
    return result
        
    
# Jeu d'essai
print("Pass test1 --> ",firstlast("") == None)
print("Pass test2 --> ",firstlast("a") == None)
print("Pass test3 --> ",firstlast("ab") == ("a","b"))
print("Pass test4 --> ",firstlast("chateau") == ("c","u"))