Tu prévois de construire une cabane dans les arbres, dans les bois près de chez toi, pour pouvoir observer le lever et le coucher du soleil.
Tu as obtenu les données d'un cabinet de géomètres local, qui donnent la hauteur de chaque arbre dans chaque section rectangulaire de la carte. Tu dois analyser chaque grille de la carte pour trouver de bons arbres pour ta cabane.
Un bon arbre remplit les deux conditions suivantes :
Ta tâche est de trouver les arbres potentiels où tu pourrais construire ta cabane dans les arbres.
L'entreprise de données fournit les données sous forme de grilles qui montrent la hauteur des arbres. Les lignes de la grille représentent la direction est-ouest, et les colonnes représentent la direction nord-sud.
Un arbre acceptable est le plus grand de sa ligne, tout en étant le plus petit de sa colonne.
Une grille peut très bien ne contenir aucun bon arbre. Ou bien elle peut en contenir un, voire plusieurs.
Voici une grille qui contient exactement un arbre candidat.
↓
1 2 3 4
|-----------
1 | 9 8 7 8
→ 2 |[5] 3 2 4
3 | 6 6 7 1
Ainsi, le point en [2, 1] (ligne : 2, colonne : 1) est un excellent emplacement pour une cabane dans les arbres.
Il est parfois nécessaire de lever une exception. Dans ce cas, tu dois toujours inclure un message d'erreur explicite qui indique l'origine de l'erreur. Cela rend le code plus lisible et facilite grandement le débogage. Si tu sais que l'erreur provient d'un type précis, tu peux choisir de lever l'un des types d'erreur intégrés, mais tu dois tout de même y joindre un message explicite.
Cet exercice demande en particulier d'utiliser l'instruction raise pour « lever » une ValueError si la matrix est irrégulière. Les tests ne passeront que si tu lèves l'exception avec raise et que tu y joins un message.
Pour lever une ValueError avec un message, écris ce message en argument du type de l'exception :
# if the matrix is irregular
raise ValueError("irregular matrix")
Inscris-toi sur Exercism pour apprendre et maîtriser Python avec 17 concepts146 exercices, et un vrai mentorat humain, le tout gratuitement.