ವಿಷಯಕ್ಕೆ ತೆರಳಿ

ಪ್ರಾಜೆಕ್ಟ್ 11: BMI ಕ್ಯಾಲ್ಕುಲೇಟರ್ (Body Mass Index)

ಈ ಪ್ರಾಜೆಕ್ಟ್‌ನಲ್ಲಿ, ನಾವು ಒಬ್ಬ ವ್ಯಕ್ತಿಯ ಬಾಡಿ ಮಾಸ್ ಇಂಡೆಕ್ಸ್ (BMI) ಅನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವ ಒಂದು ಸರಳ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ನಿರ್ಮಿಸುತ್ತೇವೆ. BMI ಎನ್ನುವುದು ವ್ಯಕ್ತಿಯ ತೂಕ ಮತ್ತು ಎತ್ತರವನ್ನು ಆಧರಿಸಿ ಅವರ ದೇಹದ ಕೊಬ್ಬಿನ ಒಂದು ಅಳತೆಯಾಗಿದೆ. ಪ್ರೋಗ್ರಾಂ ಬಳಕೆದಾರರಿಂದ ಅವರ ತೂಕವನ್ನು ಕಿಲೋಗ್ರಾಂಗಳಲ್ಲಿ ಮತ್ತು ಎತ್ತರವನ್ನು ಮೀಟರ್‌ಗಳಲ್ಲಿ ಪಡೆಯುತ್ತದೆ, BMI ಅನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಫಲಿತಾಂಶವನ್ನು (ಕಡಿಮೆ ತೂಕ, ಸಾಮಾನ್ಯ, ಅಧಿಕ ತೂಕ, ಇತ್ಯಾದಿ) ವರ್ಗೀಕರಿಸುತ್ತದೆ.

ಕಲಿಕೆಯ ಪರಿಕಲ್ಪನೆಗಳು

  • ಬಳಕೆದಾರರಿಂದ ಇನ್‌ಪುಟ್ ಪಡೆಯುವುದು ಮತ್ತು float ಗೆ ಪರಿವರ್ತಿಸುವುದು.
  • ಗಣಿತದ ಸೂತ್ರವನ್ನು ಬಳಸುವುದು.
  • if-elif-else ಬಳಸಿ ಫಲಿತಾಂಶವನ್ನು ವರ್ಗೀಕರಿಸುವುದು.
  • ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಬಳಸಿ ಕೋಡ್ ಅನ್ನು ಸಂಘಟಿಸುವುದು.
  • try-except ಬಳಸಿ ಇನ್‌ಪುಟ್ ವ್ಯಾಲಿಡೇಶನ್ ಮಾಡುವುದು.

BMI ಸೂತ್ರ

BMI ಅನ್ನು ಈ ಕೆಳಗಿನ ಸೂತ್ರವನ್ನು ಬಳಸಿ ಲೆಕ್ಕಾಚಾರ ಮಾಡಲಾಗುತ್ತದೆ: BMI = ತೂಕ (kg) / (ಎತ್ತರ (m))²

ಕೋಡ್

def calculate_bmi(weight_kg, height_m):
    """BMI ಅನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ."""
    if height_m <= 0:
        return None
    return weight_kg / (height_m ** 2)

def classify_bmi(bmi):
    """BMI ಮೌಲ್ಯವನ್ನು ಆಧರಿಸಿ ವರ್ಗೀಕರಿಸುತ್ತದೆ."""
    if bmi is None:
        return "ತಪ್ಪಾದ ಎತ್ತರದ ಮೌಲ್ಯ."

    if bmi < 18.5:
        return f"ನಿಮ್ಮ BMI {bmi:.2f} ಆಗಿದೆ, ಇದು 'ಕಡಿಮೆ ತೂಕ' (Underweight) ಎಂದು ಪರಿಗಣಿಸಲಾಗಿದೆ."
    elif 18.5 <= bmi < 25:
        return f"ನಿಮ್ಮ BMI {bmi:.2f} ಆಗಿದೆ, ಇದು 'ಸಾಮಾನ್ಯ ತೂಕ' (Normal weight) ಎಂದು ಪರಿಗಣಿಸಲಾಗಿದೆ."
    elif 25 <= bmi < 30:
        return f"ನಿಮ್ಮ BMI {bmi:.2f} ಆಗಿದೆ, ಇದು 'ಅಧಿಕ ತೂಕ' (Overweight) ಎಂದು ಪರಿಗಣಿಸಲಾಗಿದೆ."
    else: # bmi >= 30
        return f"ನಿಮ್ಮ BMI {bmi:.2f} ಆಗಿದೆ, ಇದು 'ಬೊಜ್ಜು' (Obesity) ಎಂದು ಪರಿಗಣಿಸಲಾಗಿದೆ."

def main():
    """ಮುಖ್ಯ ಫಂಕ್ಷನ್."""
    print("BMI ಕ್ಯಾಲ್ಕುಲೇಟರ್‌ಗೆ ಸ್ವಾಗತ!")

    try:
        weight_str = input("ದಯವಿಟ್ಟು ನಿಮ್ಮ ತೂಕವನ್ನು ಕಿಲೋಗ್ರಾಂಗಳಲ್ಲಿ (kg) ನಮೂದಿಸಿ: ")
        weight = float(weight_str)

        height_str = input("ದಯವಿಟ್ಟು ನಿಮ್ಮ ಎತ್ತರವನ್ನು ಮೀಟರ್‌ಗಳಲ್ಲಿ (m) ನಮೂದಿಸಿ: ")
        height = float(height_str)

        if weight <= 0 or height <= 0:
            print("ತೂಕ ಮತ್ತು ಎತ್ತರವು ಧನಾತ್ಮಕ ಸಂಖ್ಯೆಗಳಾಗಿರಬೇಕು.")
            return

        bmi_value = calculate_bmi(weight, height)
        classification = classify_bmi(bmi_value)

        print(classification)

    except ValueError:
        print("ತಪ್ಪಾದ ಇನ್‌ಪುಟ್. ದಯವಿಟ್ಟು ಸಂಖ್ಯೆಗಳನ್ನು ಮಾತ್ರ ನಮೂದಿಸಿ.")
    except Exception as e:
        print(f"ಒಂದು ಅನಿರೀಕ್ಷಿತ ದೋಷ ಸಂಭವಿಸಿದೆ: {e}")

if __name__ == "__main__":
    main()

ವಿವರಣೆ

  1. calculate_bmi(weight_kg, height_m) ಫಂಕ್ಷನ್:
    • ಈ ಫಂಕ್ಷನ್ ತೂಕ ಮತ್ತು ಎತ್ತರವನ್ನು ಇನ್‌ಪುಟ್ ಆಗಿ ತೆಗೆದುಕೊಂಡು BMI ಸೂತ್ರವನ್ನು ಬಳಸಿ BMI ಮೌಲ್ಯವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ.
    • ಎತ್ತರವು ಸೊನ್ನೆ ಅಥವಾ ಅದಕ್ಕಿಂತ ಕಡಿಮೆ ಇದ್ದರೆ, ಭಾಗಾಕಾರ ದೋಷವನ್ನು ತಪ್ಪಿಸಲು None ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
  2. classify_bmi(bmi) ಫಂಕ್ಷನ್:
    • ಈ ಫಂಕ್ಷನ್ ಲೆಕ್ಕಾಚಾರ ಮಾಡಿದ BMI ಮೌಲ್ಯವನ್ನು ಆಧರಿಸಿ, ವ್ಯಕ್ತಿಯು ಯಾವ ತೂಕದ ವರ್ಗಕ್ಕೆ ಸೇರುತ್ತಾರೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ.
    • if-elif-else ಸ್ಟೇಟ್‌ಮೆಂಟ್‌ಗಳನ್ನು ಬಳಸಿ, BMI ಮೌಲ್ಯವನ್ನು ಪ್ರಮಾಣಿತ ವರ್ಗಗಳೊಂದಿಗೆ (ಕಡಿಮೆ ತೂಕ, ಸಾಮಾನ್ಯ, ಇತ್ಯಾದಿ) ಹೋಲಿ��ಲಾಗುತ್ತದೆ.
    • f"{bmi:.2f}": ಫಲಿತಾಂಶವನ್ನು ಹೆಚ್ಚು ಓದಬಲ್ಲಂತೆ ಮಾಡಲು, BMI ಮೌಲ್ಯವನ್ನು ಎರಡು ದಶಮಾಂಶ ಸ್ಥಾನಗಳಿಗೆ ಸೀಮಿತಗೊಳಿಸಲು ಈ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
  3. main() ಫಂಕ್ಷನ್:
    • ಬಳಕೆದಾರರಿಂದ ತೂಕ ಮತ್ತು ಎತ್ತರವನ್ನು ಪಡೆಯುತ್ತದೆ.
    • float() ಬಳಸಿ ಇನ್‌ಪುಟ್ ಅನ್ನು ದಶಮಾಂಶ ಸಂಖ್ಯೆಗಳಾಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ.
    • ಬಳಕೆದಾರರು ನಮೂದಿಸಿದ ಮೌಲ್ಯಗಳು ಧನಾತ್ಮಕವಾಗಿವೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ.
    • calculate_bmi ಮತ್ತು classify_bmi ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಕಾಲ್ ಮಾಡಿ, ಅಂತಿಮ ಫಲಿತಾಂಶವನ್ನು ಬಳಕೆದಾರರಿಗೆ ಪ್ರದರ್ಶಿಸುತ್ತದೆ.
  4. ಎರರ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್: try-except ಬ್ಲಾಕ್, ಬಳಕೆದಾರರು ಸಂಖ್ಯೆಗಳ ಬದಲು ಅಕ್ಷ���ಗಳನ್ನು ನಮೂದಿಸಿದಾಗ ಉಂಟಾಗುವ ValueError ಅನ್ನು ಹ್ಯಾಂಡಲ್ ಮಾಡುತ್ತದೆ, ಇದರಿಂದ ಪ್ರೋಗ್ರಾಂ ಕ್ರ್ಯಾಶ್ ಆಗುವುದಿಲ್ಲ.