如何使用Python和PyWebIO創建BMI計算器Web應用程式?

王林
發布: 2023-09-04 15:37:05
轉載
907 人瀏覽過

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

本教學將說明建立網路來計算 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 腳本時,它將打開一個新窗口,如下所示 -

如何使用Python和PyWebIO創建BMI計算器Web應用程式?

#輸入您的身高(米),然後按一下「提交」按鈕。點擊“提交”按鈕後,將顯示以下畫面 -

如何使用Python和PyWebIO創建BMI計算器Web應用程式?

#現在輸入您的體重(以公斤為單位),然後再次點擊「提交」按鈕。點擊「提交」按鈕後,將顯示結果如下 -

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()」函數,提示使用者輸入身高和體重。然後,它使用公式體重/(身高/100)^2 計算 BMI,四捨五入到小數點後兩位,並使用“put_text()”函數顯示結果。接下來,它使用一系列 if 語句根據計算的 BMI 來確定體重類別。

最後,我們使用「start_server()」函數啟動網路應用程式並顯示 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 腳本時,它將打開一個新窗口,如下所示 -

如何使用Python和PyWebIO創建BMI計算器Web應用程式?

#輸入您的身高(米),然後按一下「提交」按鈕。點擊“提交”按鈕後,將顯示以下畫面 -

如何使用Python和PyWebIO創建BMI計算器Web應用程式?

#現在輸入您的體重(以公斤為單位),然後再次點擊「提交」按鈕。點擊「提交」按鈕後,將顯示結果如下 -

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應用程式整合

以上是如何使用Python和PyWebIO創建BMI計算器Web應用程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板