🏃‍♀️從 BMI計算 學python 基本輸入和四則運算

🏃‍♀️從 BMI計算 學python 基本輸入和四則運算

更新於 發佈於 閱讀時間約 6 分鐘

前言


在之前 從冷笑話 學python 基本輸出 print()已經學會如何用python來輸出訊息,

並且在 從範例(閏年判斷) 學 Python 的 if ... else ... 語法
學會如何用進行流程控制和邏輯判斷。


接著,在這次的BMI(身體質量指標)計算教學裡,
將學會如何用python來接收使用者輸入的訊息,並且做一些簡單的四則運算。


觀念複習

從電腦的視角來看,什麼叫做Output輸出?

電腦或程式將結果向外傳遞,可能是透過螢幕、印表機、喇叭、檔案...等裝置或媒介發出訊息,讓使用者接收到。


從電腦的視角來看,什麼叫做Input輸入?

電腦或程式從外界接收訊息,可能是透過鍵盤、滑鼠、觸控板、麥克風...等裝置或媒介接收訊息,讓使用者傳入特定的資訊。


鍵盤輸入 與 input()語法


口語的表達

在鍵盤輸入特定的訊息​給電腦(或者程式)

對應的python語法

# x 是變數的名字,通常建議取相關的英文單字或相關的簡稱​
# 接收到的型別,預設是字串string​

x = input("提示訊息")


範例1: 經典的問候

在螢幕上顯示提示訊息,請使用者從鍵盤輸入英文名字。

接著,在螢幕上顯示對應的問候訊息。


對應的python程式碼如下

name = input("What is your name? ")

print(f"Hi, {name}. Nice to meet you.")

輸入:

Tom​

輸出結果:

What is your name? Tom
Hello, Tom. Nice to meet you.

如果輸入訊息不是字串,
需要跟著情境變化(例如有數字的情況下),要怎麼處理?


也很容易,如果輸入是整數,那麼使用int()來轉換到整數型別即可。

如果輸入帶有小數點,那麼使用float()來轉換到浮點數型別即可。


範例2: 輸入年齡

在螢幕上顯示提示訊息,請使用者從鍵盤輸入今年幾歲。

接著,在螢幕上顯示對應的年齡訊息。


對應的python程式碼如下

age = int( input("How old are you? ") )

print(f"You are {age} years old.")

輸入:

18

輸出結果:

How old are you? 18
You are 18 years old.

四則運算 與 加減乘除 語法


口語的表達

兩個數字或者變數 做四則運算

對應的python語法


x=20
y=10

#​ result 是用來儲存計算的結果的變數

# 相加
result = x + y
print(result)

# 相減
result = x - y
print(result)

# 相乘
result = x * y
print(result)

# 相除​
# 重要觀念: 做除法的時候,不可以除以零,否則會出錯!
result = x / y
print(result)

# x的y次方運算
result = x ** y
print(result)

DEMO: BMI計算機


BMI = 體重(kg) / [ 身高(m) 的平方 ]


在螢幕上顯示提示訊息,請使用者從鍵盤輸入體重和身高。

接著,在螢幕上顯示BMI和相對應的健康提示訊息。


# 輸入體重和身高
weight = input("請輸入體重(kg):")
height = input("請輸入身高(cm):")

# 字串轉成浮點數
weight = float(weight)
height = float(height)

# 公分轉換成公尺
height = height / 100

# 計算BMI
bmi = weight / (height ** 2)

# 顯示結果
print(f"您的BMI值為:{bmi}")

# 判斷BMI範圍
if bmi < 18.5:
print("體重過輕")

elif 18.5 <= bmi < 25:
print("體重正常")

elif 25 <= bmi < 30:
print("體重過重")

else:
print("肥胖")

測試範例:

輸入

請輸入體重(kg):60
請輸入身高(cm):175

輸出結果

您的BMI值為:19.591836734693878
體重正常

還有其他幾種不同的輸出結果,讀者可以試著輸入不同數值玩玩看。


結語

其實 input() 語法對應到的就是我們日常生活中的文字輸入,相當直覺。

四則運算也與日常生活中的加減乘除意義相同。


讀者可以試著從生活中的範例開始練習,先定義出明確的輸入與計算規則,

接著寫幾個小程式測試一下是否與預期中的執行結果相符合。

avatar-img
小松鼠的演算法樂園
95會員
425內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言
avatar-img
留言分享你的想法!
從Python 內建deque資料結構的角度切入, 同時了解deque 與 FIFO Queue相關的function用法。 collections.deque是一種兩端點皆可進出的雙端佇列 在兩端點高效地在O(1)常數時間內添加和刪除元素。 這使得deque非常適合實現FIFO Queue
井字遊戲(OOXX)的遊戲描述 Tic Tac Toe(井字遊戲)是經典的雙人棋盤遊戲,在一個3x3的方格中進行。 每回合兩個玩家輪流選一個位置,先讓自己的符號(是 X 或 O)在 水平線、垂直線或對角線上連成一線的玩家宣告獲勝。
深入探討圖(Graph)的基本概念 及 最短路徑Shortest Path的尋找。 我們專注於廣度優先搜尋(BFS)演算法,以等權圖的最短路徑為例, 詳細說明如何利用BFS從起點擴散到終點,並且提供詳細的程式碼範例。 透過實作,讀者能夠更清楚理解圖論及BFS的應用,並體會水波紋擴散模型的重要性。
從Python 內建deque資料結構的角度切入, 同時了解deque 與 FIFO Queue相關的function用法。 collections.deque是一種兩端點皆可進出的雙端佇列 在兩端點高效地在O(1)常數時間內添加和刪除元素。 這使得deque非常適合實現FIFO Queue
井字遊戲(OOXX)的遊戲描述 Tic Tac Toe(井字遊戲)是經典的雙人棋盤遊戲,在一個3x3的方格中進行。 每回合兩個玩家輪流選一個位置,先讓自己的符號(是 X 或 O)在 水平線、垂直線或對角線上連成一線的玩家宣告獲勝。
深入探討圖(Graph)的基本概念 及 最短路徑Shortest Path的尋找。 我們專注於廣度優先搜尋(BFS)演算法,以等權圖的最短路徑為例, 詳細說明如何利用BFS從起點擴散到終點,並且提供詳細的程式碼範例。 透過實作,讀者能夠更清楚理解圖論及BFS的應用,並體會水波紋擴散模型的重要性。