print('\nExercice 4\n') ## Question 4.1 def max_abs(x,y) : if abs(x) > abs(y) : return x elif abs(x) == abs(y) : if x > 0 : return x else : # abs(x)==abs(y) et x<=y return y else : # abs(x) abs(y) : return x elif abs(x) == abs(y) and x > 0 : return x else : return y assert(max_abs2(3,-5)==-5) assert(max_abs2(-3,5)==5) assert(max_abs2(-4,4)==4) x=3 y=-5 print('max_abs2(',x,',',y,')=',max_abs(x,y),sep='') x=5 y=-3 print('max_abs2(',x,',',y,')=',max_abs(x,y),sep='') ## Question 4.2 def afficher_max_abs(x,y,msg) : if abs(x) > abs(y) or (abs(x) == abs(y) and x > 0) : print(msg , x) else : print(msg , y) afficher_max_abs(3,-5,"Message") afficher_max_abs(-3,5,"Le plus grand en valeur absolue est :") ## Question 4.3 def afficher_max_abs(x,y,msg) : print(msg, max_abs(x,y)) afficher_max_abs(3,-5,"Message") afficher_max_abs(-3,5,"Le plus grand en valeur absolue est :") print('\nExercice 5\n') def hms(n) : secondes = n%60 minutes_dont_heures = n//60 minutes = minutes_dont_heures%60 heures = minutes_dont_heures//60 print(n,'--->',heures,'heure(s)', minutes,'minute(s)',secondes,'seconde(s)') # Il faut toujours faire des tests sur des valeurs simples hms(60) hms(3600) hms(4567) # L’astuce est d’ajouter une fonction auxilliaire. def pluriel(mot,n): if n<=1: return mot else: return mot+"s" def hms(n): secondes = n%60 minutes_dont_heures = n//60 minutes = minutes_dont_heures%60 heures = minutes_dont_heures//60 h = pluriel("heure", heures) m = pluriel("minute", minutes) s = pluriel("seconde", secondes) print(n,'--->',heures,h , minutes,m ,secondes, s) hms(60) hms(3600) hms(4567) print('\nExercice 6\n') def spy(): print('My name is') return 7 ## Question 6.1 spy() ## Question 6.2 spy ## Question 6.3 spy() + spy() ## Question 6.4 max(spy() , spy()) ## Question 6.5 spy() == 7 or spy() == 'My name is' ## Question 6.6 print(spy()) ## Question 6.7 print(print(spy()))