import tkinter as tk from math import sqrt def transfoEnInt(groupe): """Prend en parametre un tuple ou une liste de réels de type str et renvoie une liste de réels de type int""" lst = [] for element in groupe: lst += [int(element)] return lst def lecture(nomFichier): """Prend en parametre le nom du fichier csv à lire et renvoie un tableau.""" with open(nomFichier, 'r') as fichier: fichier_nettoye = [] for ligne in fichier: fichier_nettoye += [ligne.strip()] return fichier_nettoye def estBissextile(annee): """prend en compte une annee à verifier si elle est bissextile et renvoie True si elle l'est et False sinon""" return annee%4 == 0 and annee%100 != 0 or annee%400 == 0 def numeroJour(date): """Prend en parametre une date au format aaaa-mm-jj et renvoie un entier correspondant au numero du jour correspondant (de 1 à 365)""" dateSeparee = transfoEnInt(date.split('-')) totalJours = 0 JoursMois = [31,28,30,31,30,31,31,30,31,30,31] #Nombre de jours de chaques mois for i in range(dateSeparee[1]-1): totalJours += JoursMois[i] if estBissextile(dateSeparee[0]) and totalJours + dateSeparee[2] >= 60 and dateSeparee[1] > 2: #regarde si on est dans une année bissextile et apres fevrier totalJours += 1 return totalJours + dateSeparee[2] def distance(Tuple1 , Tuple2): """prend en parametre 2 tuples avec (Numéro du jour, Température moyenne, température de référence) et renvoie la distance **euclidienne**""" lst1 = transfoEnInt(Tuple1) lst2 = transfoEnInt(Tuple2) JoursOrdonnes = sorted([lst1[0],lst2[0]]) DiffJours = min([JoursOrdonnes[1]-JoursOrdonnes[0],365-JoursOrdonnes[1]+JoursOrdonnes[0]]) return sqrt(DiffJours**2 + (lst1[1]-lst2[1])**2+(lst1[2]-lst2[2])**2) def kPlusProches(point,lstRepre): """Prend en parametre un tuple avec (Numéro du jour, Température moyenne, température de référence) correspondant au point à verifier, une liste de tuples de meme type et la consommation electrique Renvoie une liste triée en fonction de la distance avec le""" fenetre = tk.Tk() fenetre.title("pour l'instant je sais pas quoi (FEUR) mettre") #Un truc comme gestionnaire du transport d'electricité non ? ou je pense que sur tkinter tu peux faire disparaitre #le dessus (mais faut rajouter un bouton pour fermer la fenetre et tout c'est galere) canva = tk.Canvas(fenetre, width = 400, height = 300, bg = "springgreen") canva.grid() value = tk.StringVar() value.set("taper le nombre de voisin (k) voulu") #Il faudrait un truc par defaut qui serait normal pour la base de donnée pour faciliter l'utilisation entree=tk.Entry(fenetre, textvariable=value, width=30) entree.grid() entree.bind("