################ ## ## ## Exercice 4 ## ## ## ################ 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='') def max_abs3(x,y) : if abs(x) > abs(y) or (abs(x) == abs(y) and x > 0) : return x return y # Pourquoi est-ce que ça marche ? assert(max_abs3(3,-5)==-5) assert(max_abs3(-3,5)==5) assert(max_abs3(-4,4)==4) x=3 y=-5 print('max_abs3(',x,',',y,')=',max_abs(x,y),sep='') x=5 y=-3 print('max_abs3(',x,',',y,')=',max_abs(x,y),sep='') ## Question 4.2 def print_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) print_max_abs(3,-5,"Message") print_max_abs(-3,5,"Le plus grand en valeur absolue est :") def print_max_abs_erreur(x,y) : # Version fautive if abs(x) > abs(y) or (abs(x) == abs(y) and x > 0) : print(msg,x) print(msg,y) ## Question 4.3 def print_max_abs(x,y,msg) : print(msg, max_abs(x,y)) print_max_abs(3,-5,"Message") print_max_abs(-3,5,"Le plus grand en valeur absolue est :") ################ ## ## ## Exercice 5 ## ## ## ################ 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) def hms(n): secondes = n%60 minutes_dont_heures = n//60 minutes = minutes_dont_heures%60 heures = minutes_dont_heures//60 if secondes<=1: # On peut faire deux cas msg_secondes="seconde" else: msg_secondes="secondes" msg_minutes="minutes" # on peux aussi mettre msg_heures="heures" # des valeurs par défaut if minutes<=1: # et les modifier si nécessaire msg_minutes="minute" if heures<=1: msg_heures="heure" print(n,'--->',heures,msg_heures, minutes,msg_minutes,secondes,msg_secondes) hms(60) hms(3600) hms(4567) ################ ## ## ## Exercice 6 ## ## ## ################ 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()))