Parcours
/
Python
Python
/
Exercices
/
Points de selle
Points de selle

Points de selle

Facile

Introduction

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 :

  • plus haut que tous les arbres situés à l'est et à l'ouest, pour avoir la meilleure vue possible sur les levers et les couchers de soleil.
  • plus bas que tous les arbres situés au nord et au sud, pour avoir le moins possible à grimper aux arbres.

Instructions

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
  • La ligne 2 contient les valeurs 5, 3, 2 et 4. La plus grande valeur est 5.
  • La colonne 1 contient les valeurs 9, 5 et 6. La plus petite valeur est 5.

Ainsi, le point en [2, 1] (ligne : 2, colonne : 1) est un excellent emplacement pour une cabane dans les arbres.

Messages d'erreur

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")
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Python Exercism

Prêt à commencer Points de selle ?

Inscris-toi sur Exercism pour apprendre et maîtriser Python avec 17 concepts146 exercices, et un vrai mentorat humain, le tout gratuitement.