如何使用 Python 和 PyWebio 建立 BMI 計算器 Web 應用?


PyWebio 是一個 Python 庫,可用於構建需要更簡單 UI 的 Web 應用程式。它提供了一些函式來建立簡單的 Web 瀏覽器。任何人都可以使用 PyWebio 構建簡單的 Web 應用程式,而無需事先了解 HTML 和 JavaScript。

本教程將說明兩種建立 Web 計算 BMI 的方法。體重指數 (BMI) 根據體重和身高測量體脂。它通常用於確定一個人是體重過輕、正常、超重還是肥胖。

示例

在此示例中,我們定義了一個“BMICalculator”類,其中包含計算和分類 BMI 所需的所有方法。“__init__”方法將物件的屬性初始化為 None。

接下來,我們使用了“get_user_inputs()”方法,該方法使用“input()”函式獲取使用者的 身高和體重。然後,“calculate_bmi()”方法使用公式計算 BMI,並將結果四捨五入到小數點後兩位。“classify_weight_category()”方法使用 if-elif-else 語句根據計算出的 BMI 對使用者的體重類別進行分類。“display_results()”方法使用“put_text()”函式向用戶顯示 BMI 和體重類別。

最後,我們定義了“calculate_bmi()”函式,該函式建立 BMICalculator 類的例項,依次呼叫其方法,並將結果顯示給使用者。此函式用作 PyWebIO 應用程式的入口點。

from pywebio.input import input, FLOAT
from pywebio.output import put_text
class BMICalculator:
   def __init__(self):
      self.height = None
      self.weight = None
      self.bmi = None
      self.classification = None

   def calculate_bmi(self):

      # Get user's height and weight
      self.height = input("Please enter your height in meters (m):", type=FLOAT)
      self.weight = input("Please enter your weight in kilograms (kg):", type=FLOAT)

      # Calculate BMI
      self.bmi = self.weight / (self.height ** 2)

      # Determine BMI classification
      if self.bmi < 16:
         self.classification = "Severely underweight"
      elif self.bmi < 18.5:
         self.classification = "Underweight"
      elif self.bmi < 25:
         self.classification = "Normal (healthy weight)"
      elif self.bmi < 30:
         self.classification = "Overweight"
      elif self.bmi < 35:
         self.classification = "Moderately obese"
      else:
         self.classification = "Severely obese"

      # Display results to the user
      put_text("Based on your height of {}m and weight of {}kg, your BMI is {:.1f}. This means you are classified as {}.".format(self.height, self.weight, self.bmi, self.classification))
      
      # Create BMICalculator object
      bmi_calculator = BMICalculator()
      
      # Calculate BMI and display results
      bmi_calculator.calculate_bmi()

輸出

執行上述 Python 指令碼時,它將開啟一個新視窗,如下所示:

輸入您的身高(米),然後點選“提交”按鈕。點選“提交”按鈕後,將顯示以下螢幕:

現在,輸入您的體重(公斤),然後再次點選“提交”按鈕。點選“提交”按鈕後,將顯示以下結果:

Based on your height of 1.7m and weight of 65kg, your BMI is 22.5. This means you are classified as Normal (healthy weight).

示例

這是建立 BMI Web 應用的另一種簡單方法。在此示例中,我們定義了“calculate_bmi()”函式,該函式提示使用者輸入他們的身高和體重。然後,它使用公式 weight / (height/100) ^2 計算 BMI,將其四捨五入到小數點後兩位,並使用“put_text()”函式顯示結果。接下來,它使用一系列 if 語句根據計算出的 BMI 確定體重類別。

最後,我們使用“start_server()”函式啟動 Web 應用並顯示 BMI 計算器。然後,我們將 Web 應用的標題設定為“BMI 計算器”,並將“計算”按鈕上的文字設定為“計算 BMI”。

from pywebio.input import *
from pywebio.output import *
from pywebio import start_server
def calculate_bmi():
   height = input("Enter your height (in cm)", type=FLOAT)
   weight = input("Enter your weight (in kg)", type=FLOAT)
   bmi = weight / ((height/100) ** 2)
   bmi = round(bmi, 2)
   weight_category = ""
   if bmi < 18.5:
      weight_category = "underweight"
   elif 18.5 <= bmi <= 24.9:
      weight_category = "normal weight"
   elif 25 <= bmi <= 29.9:
      weight_category = "overweight"
   else:
      weight_category = "obese"
   put_text("Your BMI is: %s" % bmi)
   put_text("You have a %s" % weight_category)
   if __name__ == '__main__':
      start_server(calculate_bmi, port=80, debug=True, title="BMI Calculator", button_text="Calculate BMI")

輸出

執行上述 Python 指令碼時,它將開啟一個新視窗,如下所示:

輸入您的身高(米),然後點選“提交”按鈕。點選“提交”按鈕後,將顯示以下螢幕:

現在,輸入您的體重(公斤),然後再次點選“提交”按鈕。點選“提交”按鈕後,將顯示以下結果:

Your BMI is: 21.22
You have a normal weight

我們瞭解到 Pywebio 是一個用於建立簡單 Web 應用程式的強大庫。開發人員可以輕鬆地建立需要更簡單 UI 的 Web 應用程式。它提供輸入/輸出函式來處理 Python 變數和網頁元素之間的轉換,從而可以輕鬆構建互動式 Web 介面。PyWebIO 的主要優勢之一是易用性。我們可以透過安裝庫並將必要的函式匯入到 Python 程式碼中來快速開始。PyWebIO 還提供各種內建小部件,例如文字框、下拉選單和按鈕,這些小部件可以輕鬆地整合到 Web 應用程式中。它支援多種 Web 框架,包括 Flask、Django 和 Tornado,這使得它易於與現有的 Python Web 應用程式整合。

更新時間: 2023 年 4 月 10 日

496 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告