#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Thu Feb 18 18:25:11 2021 @author: sekhmet """ from gestion_erreurs import warning, debug from configuration import CONFIG from gestion_donnees import convertit_age_vers_texte import gestion_unites as u #### Les fonctions qui permettent de faire les calculs additionnels une fois qu'on a l'extrapolation def met_s(chaine): """ renvoie un s si pluriel, rien sinon""" if int(chaine)>1: return "s" else: return "" def joliechaine_age(age): """ prend en argument une chaîne du type 6a3m2j et renvoie une chaîne un peu plus jolie à lire genre 6 ans, 3mois, 2 jours""" retour = "" nombre = "" for char in age: if char=="a": retour+=nombre+" année"+met_s(nombre)+", " nombre="" elif char=="m": retour+=nombre+" mois, " nombre="" elif char=="s": retour+=nombre+" semaine"+met_s(nombre)+", " nombre="" elif char=="j": retour+=nombre+" jour"+met_s(nombre)+", " nombre="" else: nombre+=char #print(retour) return retour[:-2] def calcule_donnee_extrapolee(dates_extrapole, donnees_extrapole, age_voulu, typedonnee, liste_err): """ prend en argument les données extrapolées, l'âge voulu en jours, et le type de données qu'on veut afficher, et renvoie une jolie phrase à afficher""" age_voulu = int(age_voulu) # pour avoir les choses bien debug("On veut la donnée à l'âge "+str(age_voulu), liste_err) try: i_date_voulue = dates_extrapole.index(age_voulu) donnee_voulue = donnees_extrapole[i_date_voulue] donnee_arrondie = u.arrondit_donnee(donnee_voulue, typedonnee) chaine = "À "+joliechaine_age(convertit_age_vers_texte(age_voulu)) if typedonnee == "poids": return chaine+", l'enfant pèsera "+str(donnee_arrondie)+" kg." elif typedonnee == "taille": return chaine+", l'enfant mesurera "+str(donnee_arrondie)+" cm." else: # phrase générique return chaine+", la donnée sera : "+str(donnee_arrondie)+" "+CONFIG["unites_typedonnees"][typedonnee]+"." except: warning("Impossible de calculer la donnée à l'âge "+age_voulu, liste_err) return "" def calcule_age_extrapole(dates_extrapole, donnees_extrapole, donnee_voulue, typedonnee, liste_err): """ prend en argument les données extrapolées, la donnée voulue (dans l'unité adaptée) et son type, et renvoie la jolie phrase à afficher""" debug("On veut savoir à quel âge on a "+str(donnee_voulue), liste_err) try: i=0 while i