################
##            ##
## 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 y

x=3
y=-5
print('max_abs(',x,',',y,')=',max_abs(x,y),sep='')

x=5
y=-3
print('max_abs(',x,',',y,')=',max_abs(x,y),sep='')


assert max_abs(3,-5)==-5
assert max_abs(-3,5)==5
assert max_abs(-4,4)==4

def max_abs2(x,y) :
    if 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 :")





################
##            ##
## 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)

# 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)


################
##            ##
## 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()))
