1.สร้าง project ไปที่ drive d:\python แล้วคลิกขวา new file แล้วตั้งชื่อ bmi.py

2.เปิด bmi.py ด้วยโปรแกรม vs code แล้วแก้ไขโค้ดดังนี้

 

in_hight=float(input("ส่วนสูง:"))
in_weight=float(input("น้ำหนัก:"))
#เปลี่ยนส่วนสูงเป็นเมตร
in_hight=in_hight/100 #เป็นการทำ CM ให้เป็น M
#สูตรการคำนวน BMI 
#BMI=น้ำหนัก หาร ส่วนสูงยกกำลังสอง (เมตร) (ส่วนสูงคิดเป็นเมตร)
sum_bmi=in_weight/(in_hight*in_hight)
print("bmi ที่ได้คือ :"+str(sum_bmi))

3. เพิ่มการคำนวนว่าผอมไป อ้วนไป ด้วยโดยใช้ if มาช่วย

in_hight=float(input(“ส่วนสูง:”))
in_weight=float(input(“น้ำหนัก:”))
#เปลี่ยนส่วนสูงเป็นเมตร
in_hight=in_hight/100 #เป็นการทำ CM ให้เป็น M
#สูตรการคำนวน BMI
#BMI=น้ำหนัก หาร ส่วนสูงยกกำลังสอง (เมตร) (ส่วนสูงคิดเป็นเมตร)
sum_bmi=in_weight/in_hight*in_hight #1
#sum_bmi=in_weight/pow(in_hight,2) #2 ใช้ power แล้วใส่ว่าจะให้ยกกำลังด้วยอะไร
#sum_bmi=in_weight/in_hight**2 #2 ใช้ power แล้วใส่ว่าจะให้ยกกำลังด้วยอะไร
print(“bmi ที่ได้คือ :”+str(sum_bmi))
if sum_bmi > 30 :
    print(“โรคอ้วนระดับ 3 อ้วนมาก”)
elif sum_bmi >= 25 :
    print(“โรคอ้วนระดับ 2”)
elif sum_bmi >= 23 :
    print(“โรคอ้วนระดับ 1”)
elif sum_bmi >= 18.50 :
    print(“ปกติ (สุขภาพดี)”)
else :
    print(“น้ำหนักน้อย / ผอม”)

4. การทำ GUI

#การสร้าง GUI บน python
# 1 เริ่มจาก import library
from tkinter import *
from PIL import Image, ImageTk
# 2 สร้างชื่อฟอร์มของ GUI เพื่อใช้เรียกและแสดงผล เป็นตัวแปร
app=Tk() #การประกาศ app ให้เรียกใช้ form gui จากtkinter
app.title(“โปรแกรม สมโภชน์”) #การแสดงผล title gui
# 3 กำหนดขนาดแอพว่าจะแสดงผล กว้าง x สูงเท่าไหรบนหน้าจอ
app.geometry(“300×500”) #กว้าง 300 สูง 500 pixel
LabelHeight=Label(app,text=”ส่วนสูง:”) #สรา้ง label ชือ LabelHeight
LabelHeight.grid(column=0,row=0) #สั่งให้แสดงผลบน GUI ที่ col0 row0
#5 สร้าง Input เพื่อรับค่าจากการกรอกของ user
InputHeight=Entry(app,width=30) # ประกาศตัวแปรชื่อ InputHeight
#เป็นรับค่า Entry และเก็บ value หรือข้อความ (ตัวหนังสือ ตัวเลข) 30 ตัวอักษร
InputHeight.grid(column=1,row=0)
#9 สร้าง Label เก็บค่าน้ำหนัก
LabelWeight=Label(app,text=”น้ำหนัก”)
LabelWeight.grid(column=0,row=1)
#10 สร้าง input เพื่อเก็บค่าน้ำหนัก
InputWeight=Entry(app,width=30)
InputWeight.grid(column=1,row=1)
# โหลดรูปภาพตามผลลัพธ์ BMI
images = {
    “ผอมเกินไป”: ImageTk.PhotoImage(Image.open(“level1.jpg”)),
    “เหมาะสม”: ImageTk.PhotoImage(Image.open(“level2.jpg”)),
    “เริ่มอ้วน”: ImageTk.PhotoImage(Image.open(“level3.jpg”)),
    “อ้วน”: ImageTk.PhotoImage(Image.open(“level4.jpg”)),
    “อ้วนมาก”: ImageTk.PhotoImage(Image.open(“level5.jpg”)),
}
#8 จะสร้าง function เมื่อกดปุ่ม ButtonCalculate ให้ LabelSummary ไปดึงค่าจาก
#InputHeight ที่ user กรอกข้อมูลได้ มาแสดง
# 8 สร้างฟังก์ชันเมื่อกดปุ่ม ButtonCalculate
def calcualte_summary():
    try:
        # แปลงค่าที่ผู้ใช้กรอกและคำนวณ BMI
        totalHeightM = float(InputHeight.get()) / 100  # แปลงส่วนสูงเป็นเมตร
        totalbmi = float(InputWeight.get()) / (totalHeightM * totalHeightM)  # คำนวณ BMI
        # เปรียบเทียบค่า BMI และแสดงผล
        if totalbmi < 18.5:
            LabelSummary[‘text’] = f”BMI: {round(totalbmi, 2)} ผอมเกินไป”
            LabelImage[‘image’] = images[“ผอมเกินไป”]
        elif 18.5 <= totalbmi <= 25.0:
            LabelSummary[‘text’] = f”BMI: {round(totalbmi, 2)} เหมาะสม”
            LabelImage[‘image’] = images[“เหมาะสม”]
        elif 25.0 < totalbmi <= 30.0:
            LabelSummary[‘text’] = f”BMI: {round(totalbmi, 2)} เริ่มอ้วน”
            LabelImage[‘image’] = images[“เริ่มอ้วน”]
        elif 30.0 < totalbmi <= 35.0:
            LabelSummary[‘text’] = f”BMI: {round(totalbmi, 2)} อ้วน”
            LabelImage[‘image’] = images[“อ้วน”]
        elif totalbmi > 35.0:
            LabelSummary[‘text’] = f”BMI: {round(totalbmi, 2)} อ้วนมาก”
            LabelImage[‘image’] = images[“อ้วนมาก”]
    except Exception as e:
        # กรณีเกิดข้อผิดพลาด เช่น ใส่ข้อมูลไม่ถูกต้อง
        LabelSummary[‘text’] = “ข้อผิดพลาด: กรุณากรอกข้อมูลให้ถูกต้อง”
# เพิ่ม Label สำหรับแสดงภาพใน GUI
LabelImage = Label(app,text=”image…”)  # สร้าง Label ว่าง ๆ เพื่อแสดงภาพ
LabelImage.grid(column=1, row=5)  # กำหนดตำแหน่งให้ภาพ
#6 สร้างปุ่มกดเพื่อกดคำนวน
ButtonCalculate=Button(app,text=”คำนวน”,command=calcualte_summary) #สร้างปุ่มกดบน gui app
#ตั้งชื่อว่า ButtonCalculate แล้วให้แสดงคำว่า คำนวน
ButtonCalculate.grid(column=1,row=2)
# 7 จะทดสอบ input ที่รับค่าส่วนสูง (InputHeight) โดยสร้าง Label มาแสดงผล
#เมื่อกดปุ่ม Button
LabelSummary=Label(app,text=”กรอก:”)
LabelSummary.grid(column=1,row=3)
#4 แสดงผล gui หรือแสดงหน้าแอพของเรา
app.mainloop() # เรียกโชว์หน้าจอ GUI ผ่านคำสั่ง mainloop()

power point ประกอบการสอน
Basic Programming and Database Day 2

By admin

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.