#!/usr/bin/python3 # -*- coding: utf8 -*- ################################### # # _SOMMETS.PY # ----------- # # Module de traitement des Sommets # ################################### # Un sommet est un tuple (nom, altitude, massif) # - nom : STR # - altitude : INT, altitude en m # - massif : STR def creer_sommet(nom, altitude, massif): """ Construit le tuple sommet. Paramètres : - nom : STR, le nom du sommet - altitude : INT, l'altitude en m - massif : STR, le massif contenant le sommet Résultat : - TUPLE, le sommet Pré-condition : - aucune (programmation défensive à envisager) Effet de bord : - aucun """ return (nom, altitude, massif) def altitude_en_m(altitude): """ Conversion de l'altitude en entier ("2 062 m" -> 2062) Paramètre : - altitude : STR, chaîne du type "2 062 m", avec espaces et 'm' Résultat : - INT, l'altitude en m Pré-condition : - aucune (prog def à envisager) Effet de bord : - aucun """ tmp = '' for symbole in altitude: if not(symbole in ' m'): tmp += symbole return int(tmp) def creer_sommet_csv(ligne, massif): """ Construit un sommet à partir d'une ligne du fichier csv. Paramètres : - ligne : STR, ligne du fichier csv - massif : STR, basename du fichier contenant la ligne Résultat : - TUPLE, le sommet correspondant Pré-condition : - aucune Effet de bord : - aucun """ nom, alt = ligne.rstrip().split(',') return creer_sommet(nom, altitude_en_m(alt), massif) def afficher(sommet): """ Affichage formatté du sommet. Paramètres : - sommet : TUPLE, le sommet à afficher Résultat : - NONETYPE, None Pré-condition : - aucune Effet de bord : - Affichage sur la sortie standard """ nom, altitude, massif = sommet print(f'{nom:35s}\t[{massif}]\n\taltitude : {altitude} m') return None def nom(sommet): """ Consulte le nom d'un sommet Paramètre : - sommet : TUPLE Résultat : - STR, le nom du sommet Pré-condition : - aucune Effet de bord : - aucun """ return sommet[0] def altitude(sommet): """ Consulte l'altitude d'un sommet Paramètre : - sommet : TUPLE Résultat : - INT : l'altitude du sommet Pré-condition : - aucune Effet de bord : - aucun """ return sommet[1] def massif(sommet): """ Consulte le massif d'un sommet Paramètre : - sommet : TUPLE Résultat : - STR, le massif du sommet Pré-condition : - aucune Effet de bord : - aucun """ return sommet[2] def coincide_nom(sommet, motif): """ Compare le nom du sommet au motif Paramètres : - sommet : TUPLE, le sommet à tester - motif : STR, le motif à identifier Résultat : - BOOL : Vrai ssi le nom du sommet correspond au motif Pré-condition : - aucune Effet de bord : - aucun """ nom_sommet = nom(sommet) return (len(motif) <= len(nom_sommet)) and (nom_sommet[:len(motif)] == motif) if __name__ == '__main__': pass