Proyecto que calcula el índice de Masa corporal

El siguiente programa pide 2 valores, el peso y la altura de una persona(2 Entry) después evalua mediante un if, elif, si el imc de una persona es normal, bajo o alto(obesidad)
Utilizando la variable altura en éste caso en flotante ya que al ingresar por ejemplo una altura de 1.78 metros es necesario usar los decimales también.
El peso lo manejamos de tipo entero.
Al dar click al botón de calcular imc muestra un MenssageBox, informando que imc tiene y si es necesario o no atención médica.

       

# -*- coding: utf-8 -*-
import sys
import Tkinter as tk
from Tkinter import *
import tkMessageBox

def imc():
    num1 = int(entrada_peso.get())
    num2 = float(entrada_altura.get())
    imc = (num1 / (num2*num2))

    if imc == 0 or imc < 18:
        tkMessageBox.showinfo("Resultado", "Peso bajo. Necesario valorar signos de desnutrición")

    elif imc == 18 or imc < 25:
        tkMessageBox.showinfo("Resultado", "Usted tiene un peso normal, mantengalo así ;)")

    elif imc == 25 or imc < 27:
        tkMessageBox.showinfo("Resultado", "Usted padece sobrepeso, acuda a un doctor")

    elif imc == 27 or imc < 30:
        tkMessageBox.showinfo("Resultado", "Usted padece obesidad grado I")

    elif imc == 30 or imc < 40:
        tkMessageBox.showinfo("Resultado", "Usted padece de obesidad grado II")

    else:
        tkMessageBox.showinfo("Resultado", "Usted padece de obesidad morbida")

ventana=Tk()
ventana.title("Calculo de IMC")
ventana.geometry("600x250")
ventana.config(bg="gainsboro")

vp = Frame(ventana)
vp.grid(column=0, row=0, padx=(50, 50), pady=(10, 10)) #para posicionar cualquier objetovp.columnconfigure(0, weight=1)
vp.rowconfigure(0, weight=1)

peso = IntVar()
altura = float()

etiqueta_peso = Label(ventana, text='Dame el peso(kg):')
etiqueta_peso.grid(row=1, column=1,  padx=(10, 10), pady=(10, 10), sticky=E)

entrada_peso = Entry(ventana, textvariable=peso)
entrada_peso.grid(row=1, column=2,  padx=(10, 10), pady=(10, 10), sticky=E)

etiqueta_altura = Label(ventana, text='Dame la altura(mts): ')
etiqueta_altura.grid(row=2, column=1, padx=(10, 10), pady=(10, 10), sticky=E)

entrada_altura = Entry(ventana, textvariable=altura)
entrada_altura.grid(row=2, column=2, padx=(5, 10), pady=(10, 10), sticky=E)

bconv = Button(ventana, bg='LightGreen', fg='white', text='Calcular Índice de Masa Corporal', width=30, height=1, command=imc)
bconv.grid(row=4, column=2, padx=(10, 10), pady=(10, 10))

ventana.mainloop()

Mas o menos la corrida quedaría así:

Comentarios

Entradas populares de este blog

Registros del lenguaje ensamblador

Ventajas y desventajas de lenguaje ensamblador

Unidad 4 Administración de Base de Datos