Browse Source

version definitive

master
Ambre 7 months ago
parent
commit
5261b14fba
  1. 115
      tp imc.py

115
tp imc.py

@ -50,57 +50,70 @@ image_surpoids = tk.PhotoImage(file = 'surpoids.png')
#fonction qui affiche image imc+petite phrase+graphique #fonction qui affiche image imc+petite phrase+graphique
def afficher_imc(): def afficher_imc():
taille = float(entree_cm.get())/100 #convertir cm en m if float(entree_cm.get()) < 100:
poids= float(entree_kg.get()) Label1.config(text="Veuillez entrer une valeur plus haute(cm)")
imc =float(poids/taille**2) #calcul imc elif float(entree_cm.get()) > 210:
Label1.config(text="Veuillez entrer une valeur plus basse(cm)")
if imc <=18.4:
Label1.config(text="Vous êtes en sous-poids") elif float(entree_kg.get()) <= 0:
canvas2.itemconfig(image_container2,image=image_sousp) Label1.config(text="Veuillez entrer une valeur plus basse(kg)")
if imc >=18.5 and imc<=24.9: elif float(entree_kg.get()) > 210:
Label1.config(text="Votre poids est normal") Label1.config(text="Veuillez entrer une valeur plus haute(kg)")
canvas2.itemconfig(image_container2,image=image_norm)
else:
if imc >=25.0 and imc<=29.9: taille = float(entree_cm.get())/100 #convertir cm en m
Label1.config(text="Vous êtes en sur poids") poids= float(entree_kg.get())
canvas2.itemconfig(image_container2,image=image_surpoids)
imc =float(poids/taille**2) #calcul imc
if imc >=30.0 and imc<=34.9:
Label1.config(text="Vous etes en obesité") if imc <=18.4:
canvas2.itemconfig(image_container2,image=image_obes) Label1.config(text="Vous êtes en sous-poids")
canvas2.itemconfig(image_container2,image=image_sousp)
if imc >=35.0:
Label1.config(text="Vous etes en obesité sévere") if imc >=18.5 and imc<=24.9:
canvas2.itemconfig(image_container2, image=image_obes_s)#l'image de l'obésité sévère est un peu décalée, Label1.config(text="Votre poids est normal")
#je ne suis pas arrivé à la redimensionner canvas2.itemconfig(image_container2,image=image_norm)
imc2=Decimal(imc)
imc_simple = imc2.quantize(Decimal('.01')) #deux chiffres après la virgule if imc >=25.0 and imc<=29.9:
Label1.config(text="Vous êtes en sur poids")
lbl=tk.Label(fen, text="Votre imc est de :", font='Arial') canvas2.itemconfig(image_container2,image=image_surpoids)
lbl.grid(column=0,row=1)
lbl=tk.Label(fen, text=imc_simple, font='Arial') #afficher le resultat calcul imc if imc >=30.0 and imc<=34.9:
lbl.grid(column=0, row=2) Label1.config(text="Vous etes en obesité")
canvas2.itemconfig(image_container2,image=image_obes)
# graphique
fig = Figure(figsize=(7.2, 5.2), dpi=96) if imc >=35.0:
ax = fig.add_subplot(111) Label1.config(text="Vous etes en obesité sévere")
ax.axis([100, 220, 0, 180]) #limite du graphe canvas2.itemconfig(image_container2, image=image_obes_s)#l'image de l'obésité sévère est un peu décalée,
x = np.linspace(100, 220) # les tailles extrèmes en cm #je ne suis pas arrivé à la redimensionner
# cm//m imc2=Decimal(imc)
ax.fill_between(x, 0, 18.4 * (x/100)**2, label="sous poids",color="LightBlue") # sous poids si 0 <= y <= 18.4 * x² imc_simple = imc2.quantize(Decimal('.01')) #deux chiffres après la virgule
ax.fill_between(x, 18.5 * (x/100)**2, 24.9 * (x/100)**2, label="poids idéal",color="green") # idéal si 18.5 * x² <= y <= 24.9 * x²
ax.fill_between(x, 25 * (x/100)**2, 29.9 * (x/100)**2, label="surpoids",color="yellow") # surpoids si 25 * x² <= y <= 29.9 * x² lbl=tk.Label(fen, text="Votre imc est de :", font='Arial')
ax.fill_between(x, 30 * (x/100)**2, 34.9 * (x/100)**2, label="obesité",color="orange") # obésité si 30 * x² <= y <= 34.9 * x² lbl.grid(column=0,row=1)
ax.fill_between(x,180, 35 * (x/100)**2, 40 * (x/100)**2, label="obesité sévère",color="red") # obesité sevère si 35 * x² <= y lbl=tk.Label(fen, text=imc_simple, font='Arial') #afficher le resultat calcul imc
ax.scatter(taille*100, poids, color='black')#point a placer sur le graphique. il ne s'affiche qu'une fois lbl.grid(column=0, row=2)
#parce que je ne suis pas arrivé a ne pas le réinitialisé
# graphique
fig = Figure(figsize=(7.2, 5.2), dpi=96)
graph = FigureCanvasTkAgg(fig, master=fen) ax = fig.add_subplot(111)
canvas = graph.get_tk_widget() ax.axis([100, 220, 0, 180]) #limite du graphe
canvas.grid(row=0, column=1) x = np.linspace(100, 220) # les tailles extrèmes en cm
# cm//m
ax.fill_between(x, 0, 18.4 * (x/100)**2, label="sous poids",color="LightBlue") # sous poids si 0 <= y <= 18.4 * x²
ax.fill_between(x, 18.5 * (x/100)**2, 24.9 * (x/100)**2, label="poids idéal",color="green") # idéal si 18.5 * x² <= y <= 24.9 * x²
ax.fill_between(x, 25 * (x/100)**2, 29.9 * (x/100)**2, label="surpoids",color="yellow") # surpoids si 25 * x² <= y <= 29.9 * x²
ax.fill_between(x, 30 * (x/100)**2, 34.9 * (x/100)**2, label="obesité",color="orange") # obésité si 30 * x² <= y <= 34.9 * x²
ax.fill_between(x,180, 35 * (x/100)**2, 40 * (x/100)**2, label="obesité sévère",color="red") # obesité sevère si 35 * x² <= y
ax.scatter(taille*100, poids, color='black')#point a placer sur le graphique. il ne s'affiche qu'une fois
#parce que je ne suis pas arrivé a ne pas le réinitialisé
graph = FigureCanvasTkAgg(fig, master=fen)
canvas = graph.get_tk_widget()
canvas.grid(row=0, column=1)
bouton=tk.Button(fen, text="Afficher l'IMC", command=afficher_imc) #bouton pour afficher tout bouton=tk.Button(fen, text="Afficher l'IMC", command=afficher_imc) #bouton pour afficher tout
bouton.grid(column=0, columnspan=2,ipadx=50, padx=10, pady=10, row=6) bouton.grid(column=0, columnspan=2,ipadx=50, padx=10, pady=10, row=6)

Loading…
Cancel
Save