Projet
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
2.4 KiB

import tkinter as tk
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 elements in groupe:
lst += [int(elements)]
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)
return lst1[0]-lst2[0] + lst1[1]-lst2[1] + lst1[2]-lst2[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")
canva = tk.Canvas(fenetre, width = 400, height = 300, bg = "springgreen")
canva.grid()
value = tk.StringVar()
value.set("taper le nombre de voisin (k) voulu")
entree=tk.Entry(fenetre, textvariable=value, width=30)
entree.grid()
entree.bind("<Button>", lambda e:value.set(""))
texte = tk.Entry()
lecture('pic-journalier-consommation-brute-2023.csv')
fenetre.mainloop()