Contenu principal
Chapitre 3 · Les alternatives › Leçon 3 sur 7

Plusieurs conditions avec elif

Le gérant du parc d'attraction décide d'avoir plusieurs catégories d'âge. La fonction catégorie de l'éditeur lui permet d'avoir la catégorie d'une personne en fonction de son âge à l'aide d'une instruction conditionnelle.

Observe la présence à la ligne 4 d'un nouveau mot-clé : elif. C'est la contraction de else if en anglais et signifie sinon. Il permet d'augmenter le nombre de scénarios possibles du programme car on peut utiliser plusieurs elif.

Les conditions sont vérifiées les unes après les autres dans l'ordre du code. Si l'on exécute catégorie(10) la variable age vaut 10. La première condition age < 8 n'est donc pas vérifiée et le bloc indenté sous le if n'est pas exécuté. On passe alors à la condition suivante age < 60 qui est vraie. Donc le bloc indenté sous le elif est exécuté et la chaîne de caractères "adulte" est renvoyée.

  1. 1

    Exécute le code puis appelle la fonction catégorie dans la console avec un argument pour renvoyer la chaîne de caractères senior.

    Solution

    Pour que le bloc else s'exécute il faut appeler la fonction catégorie avec en argument un age supérieur ou égal à 60

    >>> catégorie(60)
    senior
  2. 2

    Change la condition d'âge pour les enfants : à présent le tarif enfant s'applique jusqu'à 10 ans inclus.

    Solution

    On modifie la condition du if :

    def catégorie(age):
    	if age <= 10:
    		return 'enfant'
    	elif age < 60:
    		return 'adulte'
    	else:
    		return 'senior'
  3. 3

    Actuellement entre 11 et 59 ans inclus c'est le tarif adulte qui s'applique. Utilise un elif pour ajouter une catégorie jeune qui s'applique jusqu'à 25 ans inclus.

    Inspire toi de la catégorie adulte et renvoie la chaîne de caractères "jeune" pour cette catégorie. N'oublie pas les deux points : après la comparaison.

    Solution

    L'ordre des comparaisons est important, car dès qu'une condition est vraie le bloc indenté en-dessous (et seulement lui) est exécuté.

    La condition à vérifier pour renvoyer "jeune" est age <= 25. On utilise un elif pour ajouter cette alternative :

    def catégorie(age):
    	if age <= 10:
    		return 'enfant'
    	elif age <= 25:
    		return 'jeune'
    	elif age < 60:
    		return 'adulte'
    	else:
    		return 'senior'
  4. 4

    La catégorie senior s'applique désormais à partir de 66 ans inclus. Modifie la fonction catégorie pour prendre en compte ce changement.

    Solution

    Le bloc else est exécuté lorsque toutes les autres conditions sont fausses. Ici il faut modifier la condition du dernier elif. Il y a plusieurs possibilités selon qu'on utilise une inégalité stricte ou large, par exemple :

    def catégorie(age):
    	if age <= 10:
    		return 'enfant'
    	elif age <= 25:
    		return 'jeune'
    	elif age < 66:
    		return 'adulte'
    	else:
    		return 'senior'
  5. 5

    La région décide de financer un pass culture pour les jeunes de 18 ans. Pour eux l'accès au parc est gratuit. Modifie la fonction catégorie avec un nouveau bloc elif pour qu'elle renvoie la chaîne de caractères "gratuit" uniquement pour les jeunes de 18 ans. Fais attention à l'ordre des blocs elif.

    Solution

    Pour vérifier qu'une personne a 18 ans on utilise la comparaison age == 18

    Pour prendre en compte le pass culture pour les jeunes de 18 ans il faut vérifier age == 18 avant de vérifier si age <= 25 donc

    def catégorie(age):
    	if age <= 10:
    		return 'enfant'
    	elif age == 18:
    		return 'gratuit'
    	elif age <= 25:
    		return 'jeune'
    	elif age < 66:
    		return 'adulte'
    	else:
    		return 'senior'

Chargement...

Collecte des fichiers...

>>>