Trois branches, trois montants
Exercice supplémentaire · niveau 1 (application) · mathématiques (ECT 1re année), chapitre 13 — Informatique et algorithmique · Premiers pas en Python
Énoncé
Que rend la fonction ci-dessous pour les montants , et ?
def frais(montant):
if montant >= 100:
return 0
elif montant >= 50:
return 3
else:
return 6Corrigé
Comment se lit une conditionnelle. Les tests sont examinés dans l'ordre, de haut en bas, et l'on s'arrête au premier qui réussit : un seul bloc s'exécute, jamais deux. De plus, return interrompt immédiatement la fonction.
Pour . est faux ; est faux aussi ; on tombe donc dans le else et la fonction rend .
Pour . est faux ; est vrai : la fonction rend et s'arrête là, sans jamais lire le else.
Pour . Le premier test réussit : la fonction rend .
Pourquoi l'ordre compte. Si l'on avait écrit >= 50 en premier, un montant de satisferait ce test et obtiendrait des frais de euros au lieu de . Dans une cascade de seuils, on teste du plus exigeant au moins exigeant.
Une lecture du barème. Les frais de port valent euros sous euros d'achat, euros entre et euros, et rien au-delà de euros.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.