tutorfree

IMC Calculator_v0.0.2

Aug 17th, 2021 (edited)
1,351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.46 KB | None | 0 0
  1. try:
  2.     from tkinter import *
  3. except:
  4.     from Tkinter import *
  5.  
  6.  
  7. janela = Tk()
  8. janela.title("IMC Calculator")
  9.  
  10.  
  11. def Limpar():
  12.     try:
  13.         peso.delete(0, END)
  14.         altura.delete(0, END)
  15.         lbDivisao["text"] = ""
  16.         defaultbg = janela.cget('bg')
  17.         lbP1.configure(bg = defaultbg)
  18.         lbP2.configure(bg = defaultbg)
  19.         lbP3.configure(bg = defaultbg)
  20.         lbP4.configure(bg = defaultbg)
  21.         lbP5.configure(bg = defaultbg)
  22.         lbP6.configure(bg = defaultbg)
  23.         lbP7.configure(bg = defaultbg)
  24.  
  25.     except ValueError:
  26.         pass
  27.  
  28.  
  29. def campo_vazio(peso, altura):
  30.     if Entry.get(peso) == '' and Entry.get(altura) == '':
  31.         return True
  32.     else:
  33.         return False
  34.  
  35.  
  36. def e_numero(peso, altura):
  37.     if Entry.get(peso).replace(',', '', 1).isdigit() == True and \
  38.        Entry.get(altura).replace(',', '', 1).isdigit() == True:
  39.         return True
  40.     else:
  41.         return False
  42.  
  43.  
  44. def Calcular():
  45.  
  46.         cor = ['Aquamarine', 'MediumAquamarine', 'LightGreen', 'yellow', 'salmon',
  47.          'Tomato', 'red']
  48.  
  49.         if campo_vazio(peso, altura) == False and e_numero(peso, altura) == True:
  50.  
  51.             p = float(Entry.get(peso).replace(',', '.', 1))
  52.             a = float(Entry.get(altura).replace(',', '.', 1))
  53.             imc = float('%.2f' %(p / a**2))
  54.  
  55.             lbDivisao["text"] = str(imc).replace('.', ',', 1)
  56.             if imc <= 17:
  57.                 lbP1["bg"] = cor[0]
  58.             elif 17 < imc <=18.49:
  59.                 lbP2["bg"] = cor[1]
  60.             elif 18.5 <= imc <=24.99:
  61.                 lbP3["bg"] = cor[2]
  62.             elif 25 <= imc <=29.99:
  63.                 lbP4["bg"] = cor[3]
  64.             elif 30 <= imc <= 34.99:
  65.                 lbP5["bg"] = cor[4]
  66.             elif 35 <= imc <=39.99:
  67.                 lbP6["bg"] = cor[5]
  68.             else:
  69.                 lbP7["bg"] = cor[6]
  70.                 lbP7["fg"] = cor[3]
  71.         else:
  72.             lbDivisao["text"] = "Campo(s) Vazio(s) ou fora do padrão!"
  73.  
  74.  
  75. if __name__ == "__main__":
  76.  
  77.     lbPeso = Label(janela, text="Peso: (Ex: 82,1)")
  78.     lbPeso.place(x=50, y=40)
  79.  
  80.     lbAltura = Label(janela, text="Altura: (Ex: 1,72)")
  81.     lbAltura.place(x=50, y=70)
  82.  
  83.     peso = Entry(janela)
  84.     peso.place(x=145, y=40, width=185)
  85.     peso.focus_set()
  86.  
  87.     altura = Entry(janela)
  88.     altura.place(x=145, y=70, width=185)
  89.  
  90.     btCalcular = Button(janela, text="Calcular", width=7, command=Calcular)
  91.     btCalcular.place(x=110, y=110)
  92.  
  93.     btLimpar = Button(janela, text="Limpar", width=7, command=Limpar)
  94.     btLimpar.place(x=213, y=110)
  95.  
  96.     lbDivisao = Label(janela, text="", foreground="blue", font="-weight bold")
  97.     lbDivisao.place(x=50, y=150)
  98.  
  99.     lbP1 = Label(janela, text="Abaixo de 17 - Muito abaixo do peso ideal")
  100.     lbP1.place(x=50, y=180)
  101.  
  102.     lbP2 = Label(janela, text="Entre 17 e 18,49 - Abaixo do peso ideal")
  103.     lbP2.place(x=50, y=200)
  104.  
  105.     lbP3 = Label(janela, text="Entre 18,5 e 24,99 - Peso normal")
  106.     lbP3.place(x=50, y=220)
  107.  
  108.     lbP4 = Label(janela, text="Entre 25 e 29,99 - Acima do peso")
  109.     lbP4.place(x=50, y=240)
  110.  
  111.     lbP5 = Label(janela, text="Entre 30 e 34,99 - Obesidade (nível I)")
  112.     lbP5.place(x=50, y=260)
  113.  
  114.     lbP6 = Label(janela, text="Entre 35 e 39,99 - Obesidade severa (nível II)")
  115.     lbP6.place(x=50, y=280)
  116.  
  117.     lbP7 = Label(janela, text="Acima de 39,99 - Obesidade mórbida (nível III)")
  118.     lbP7.place(x=50, y=300)
  119.  
  120.     janela.geometry("390x340+200+200")
  121.     janela.mainloop()
  122.  
Add Comment
Please, Sign In to add comment