""" Évite de faire des += sur les listes: c'est peu efficace. Il vaut mieux utiliser append. La doc de separerListe n'est pas très claire : à quoi correspond son paramètre, et que renvoie-t-elle ? Pourquoi renvoie-t-elle parfois trois choses et parfois 4??? De plus, si je comprends bien le dernier paramètre, ça devrait être un booléen plutôt qu'un entier. Le message d'erreur sur l'entry n'est pas super lisible. Bonne idée d'ajouter des couleurs (=> bonus) Note finale : 10/10 """ # https://82.96.134.49/[...] import tkinter as tk def graduations(plusGrand): """crée des graduations sur le coté du caneva""" graduations = [0,plusGrand*0.25,plusGrand*0.5,plusGrand*0.75,plusGrand] caneva.create_text(5,7,text=graduations[4]) caneva.create_text(155,7,text='AA') def separerListe(nombres): """Fonction permettant de séparer une chaine de caractere et de convertir ses elements en nombres entiers et utilise la fonction plusGrand pour trouver le plus grand nombre et renvoie 1 si la liste fait plus de 10 nombres.""" lstSepare = nombres.split(" ") lstInt = [] for i in range(len(lstSepare)): nombreTempo = lstSepare[i] lstInt += [int(nombreTempo)] if i+1>10: return lstInt , plusGrand(lstInt) , 10 , 1 return lstInt , len(lstInt) , 0 def validerNombres(): """Fonction permettant de créer les rectangles proportionnels aux nombres donnés par l'utilisateur.""" caneva.delete("all") erreur.configure(text="") nombres_separe, longueurListe, plusDe10= separerListe(nombres.get()) maxNombres = max(nombres_separe) if plusDe10==1: erreur.configure(text="Vous avez inséré plus que 10 nombres,"\ " seul 10 sont affichés") for i in range(longueurListe): if 0<=int(nombres_separe[i])/maxNombres<0.25: couleur = '#7ef968' elif 0.25<=int(nombres_separe[i])/maxNombres<0.5: couleur = '#e6f968' elif 0.5<=int(nombres_separe[i])/maxNombres<0.75: couleur = '#fc9d3f' else: couleur = '#fc5555' caneva.create_rectangle(40*i+30,300-300*int(nombres_separe[i])/maxNombres ,40*i+50,300,fill=couleur) graduations(maxNombres) fenetre = tk.Tk() fenetre.geometry('500x440') fenetre['bg'] = "#fffcfc" fenetre.title('Graphique proportionnel de 10 nombes - Sujet n°6') caneva = tk.Canvas(fenetre,height = 300,width=440,bg="#fffcfc") caneva.grid(column = 1, columnspan = 4,padx=30,pady=10,row = 0,rowspan = 4) label = tk.Label(fenetre, text = 'Entrez au maximum 10 nombres entiers strictement '\ 'positifs' ,bg = "#fffcfc",font='Noto 10') label.grid(column = 1, columnspan = 4) nombres = tk.StringVar() entree = tk.Entry(fenetre, textvariable= nombres , width =50) entree.grid(column = 1, columnspan =4) boutonValider =tk.Button(fenetre,text='Valider les nombres', command=validerNombres,bg="#fffcfc",font='Noto 10') boutonValider.grid(column = 2, columnspan = 2) messerreur = tk.StringVar() erreur = tk.Label(fenetre,fg='red',bg="#fffcfc",font='Noto 7 bold') erreur.grid(column=1,columnspan=4,row=5) fenetre.mainloop()