logo
Python (1) - Exercices

La pluspart des exercices sont proposés avec un jeu d'essai intégré (test cases).

Chaque test est identifié par la phrase "nomDeLaFonction : pass test" suivi du numéro du test.

A l'execution de votre programme chaque test doit être validé par True.

Exemple : somme : pass test1 --> True indique que le test n°1 est réussi.


Exercice 1 Écrire une fonction somme qui renvoie la somme de trois valeurs passées en paramètres.
# Code à copier dans votre éditeur et à compléter
def somme():
    
# 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)
# Code à copier dans votre éditeur et à compléter
def mention(note):
   
    
# 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 min qui renvoie la plus petite valeur des 2 valeurs passées en paramètres.
# Code à copier dans votre éditeur et à compléter
def min    
    
# 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.
# Code à copier dans votre éditeur et à compléter
def fizzbuzz
       
    
# 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)
print("Pass test6 --> ",fizzbuzz(10)=="Buzz")
Exercice 5 Écrire une fonction fizzbuzz100 utilisant la fonction fizzbuzz 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
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.
# Code à copier dans votre éditeur et à compléter
def min2

        
# 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.
# Code à copier dans votre éditeur et à compléter
def reverso
        
    
# 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 palindrome utilisant la fonction reverso et qui renvoie True si le mot passé en paramètre est un palindrome.
# Code à copier dans votre éditeur et à compléter
def palindrome

    
# 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 qui renvoie un 2 t-uple composé du premier et du dernier caractères du mot passé en paramètre.
# Code à copier dans votre éditeur et à compléter
def firstlast
        
    
# 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"))

Solutions

===========================================
def somme(a,b,c):
    return a+b+c
===========================================
def mention(note):
    if 0<=note<10:
        return None
    elif 10<=note<12:
        return "P"
    elif 12<=note<14:
        return "AB"
    elif 14<=note<16:
        return "B"        
    else
        return "TB"                
===========================================
def fizzbuzz(n):
    if n%3==0:
        return "Fizz"
    elif n%5==0:
        return "Buzz"
    else:
        return None

def fizzbuzz100():
    for i in range(101):
        print(fizzbuzz(i))

fizzbuzz100()

=============================
def min2(a,b,c):
    if a=b=c:
        return (a,b)
    elif a=c=b:
        return (a,c)
    elif b=a=c:
        return (b,a)
    elif b=c=a:
        return (b,c)
    elif c=a=b:
        return (c,a)
    else:
        return (c,b)
==================================
def reverso(mot):
    str=""
    for ind in range(0,len(mot)):
        str= mot[ind]+str
    return str
====================================
def palindrome(mot):
    if len(mot)==0:
        return False
    else:
        return mot==reverso(mot)
======================================

def firstlast(mot):
    if len(mot)==0:
        return None
    elif len(mot)==1:
        return None
    else:
        return(mot[0],mot[-1])