不間斷 Python 挑戰 Day 4 - if 流程控制

閱讀時間約 7 分鐘
當我們的程式需要根據某些狀況做出判斷,例如某些條件成立的話,程式就對應做出某種行為,這時單純從頭執行到尾的程式便無法滿足我們的需求,因此便需引進流程控制的概念,也就是if敘述以及其相關的語法,來讓程式可以完成更複雜的工作。

if 敘述

最基本if敘述語法如下,如果滿足condition1的條件判斷,則執行A程式碼區塊,否則就結束判斷。
if condition1:   
  Do A
if 敘述

if / else 敘述

進一步,如果滿足condition1的條件判斷時執行A程式碼區塊,不滿足時要執行B程式碼區塊,則可以用if/else敘述。
if condition1:
  Do A
else:
  Do B
if / else 敘述

巢狀 if 敘述

若if敘述裡面包含有其它的if敘述,稱為巢狀if敘述。
if condition1:
  if condition2
    Do A
  else:
    Do B
else:
  do C
巢狀 if 敘述

if / elif / else 敘述

當程式有多個條件要做判斷時,可使用if/elif/else敘述。
if condition1:
  do A
elif condition2:
  do B
......
else:
  do C
if / elif / else 敘述
例如,當我們要設計一個BMI (Body Mass Index)的計算程式時,必須判斷[1]:
  • 若BMI小於18.5時,體重過輕。
  • 若BMI大於或等於18.5、且BMI小於24時,體重正常。
  • 若BMI大於或等於24、且BMI小於28時,體重過重。
  • 若BMI大於或等於28時,則達到肥胖的程度。
此時除了必須運用if/elif/else語法外,還需引入關係運算子與邏輯運算子的觀念。

關係運算子

  • a > b:檢查a是否大於b
  • a >= b:檢查a是否大於或等於b
  • a < b:檢查a是否小於b
  • a <= b:檢查a是否小於或等於b
  • a == b:檢查a是否等於b
  • a != b:檢查a是否不等於b
舉例來說:
  • a > b
>>> print(2 > 1)
True
>>> print(1 > 2)
False
  • a >= b
>>> print(2 >= 2)
True
>>> print(1 >= 2)
False
  • a < b
>>> print(1 < 2)
True
>>> print(2 < 1)
False
  • a <= b
>>> print(2 <= 2)
True
>>> print(2 <= 1)
False
  • a == b
>>> print(2 == 2)
True
>>> print(2 == 1)
False
  • a != b
>>> print(2 != 1)
True
>>> print(2 != 2)
False

邏輯運算子

  • and運算子,例如:condition1 and condition2,兩條件必須同時成立為True,反之為False。
  • or運算子,例如:condition1 or condition2,兩條件必須有其中一個成立為True,反之為False。
  • not運算子,例如:not condition1,此條件不成立為True,反之為False。
舉例來說:
  • and
>>> print((1 < 2) and (2 < 3))
True
>>> print((1 < 2) and (3 < 2))
False
  • or
>>> print((1 < 2) or (3 < 2))
True
>>> print((2 < 1) or (3 < 2))
False
  • not
>>> print(not (1 > 2))
True
>>> print(not (1 < 2))
False

實作BMI計算機

綜合以上所學,這個程式會要求使用者輸入身高和體重,接著計算BMI,然後回傳它所計算的數值並判斷體重是否在正常範圍內。
# input your height and weight
height = input("Please input your height in centimeter:\n")
weight = input("Please input your weight in kilogram:\n")

# calculate BMI
bmi = int(weight) / ((int(height) / 100) ** 2)

# BMI interpretation
if bmi < 18.5:
  print(f"Your BMI is {bmi}, and you are underweight.")
elif bmi < 24:
  print(f"Your BMI is {bmi}, and you have a normal weight.")
elif bmi < 28:
  print(f"Your BMI is {bmi}, and you are overweight.")
else:
  print(f"Your BMI is {bmi}, and you are obese.")
以下是執行結果:
Please input your height in centimeter:
180
Please input your weight in kilogram:
75
Your BMI is 23.148148148148145, and you have a normal weight.

程式範例

參考資料

為什麼會看到廣告
avatar-img
47會員
36內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Wei-Jie Weng的沙龍 的其他內容
不間斷 Python 挑戰 Day 3 - 基本數學運算
不間斷 Python 挑戰 Day 2 - 註解、變數與資料型態
不間斷 Python 挑戰 Day 1 - 開發環境
不間斷 Python 挑戰 Day 3 - 基本數學運算
不間斷 Python 挑戰 Day 2 - 註解、變數與資料型態
不間斷 Python 挑戰 Day 1 - 開發環境
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
在程式語言裡,對應到多重選擇路徑判斷的語法, 最通俗也最常見的就是if ... else ... 語法。 今天,我們將從最基本的 若A條件成立 則...否則 ... 的 if ... else ...開始講起, 搭配幾個範例做說明,最後以一個經典的閏年判定最為結尾的Demo
Thumbnail
在這一章中,我們介紹了PHP中的流程控制語句,包括if、else if、else、三元運算子、switch語句、for迴圈、foreach迴圈、while迴圈、do-while迴圈、循環嵌套以及控制迴圈的語句如break、continue、goto和return。
Thumbnail
此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
Thumbnail
本文介紹了Python中的流程控制,包括if, elif, else語句,三元運算子,for和while迴圈,以及控制迴圈語句如break、continue和pass。透過範例程式碼,說明了如何使用這些語句和結構進行條件判斷,迴圈遍歷和控制程式流程。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
在程式世界裡,if 條件句是我們的好朋友,幫我們做各種決策。如果不注意可能會讓我們掉進小陷阱。文中透過幾個例子,在使用 if 時可能會遇到的一些常見問題,像是不必要的 if、過於複雜的條件、忘了用嚴格比較,還有嵌套太深的 if。透過這篇文章,你將學到如何避免這些小錯誤,寫出更乾淨、更有效率的程式碼。
Thumbnail
在人生中總是會遇到許多選擇,做了不同的選擇產生的結果也會不一樣,大多時候都是在為了要吃什麼在抉擇,小孩才做選擇大人全部都要,全部都要何嘗也不是一個選擇。 在Python程式語言中也有選擇的語法,就是If Else,如果是就做什麼,不是就做什麼,有別於其他程式語言,他不一定要有else,可以只有If
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
Thumbnail
IF,Switch,三元運算子語法說明 IF條件選擇結構說明 IF為布林條件,當()內條件式滿足True執行if區塊的程式碼,不滿足則執行else區塊的程式碼,若無else也行。
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
在程式語言裡,對應到多重選擇路徑判斷的語法, 最通俗也最常見的就是if ... else ... 語法。 今天,我們將從最基本的 若A條件成立 則...否則 ... 的 if ... else ...開始講起, 搭配幾個範例做說明,最後以一個經典的閏年判定最為結尾的Demo
Thumbnail
在這一章中,我們介紹了PHP中的流程控制語句,包括if、else if、else、三元運算子、switch語句、for迴圈、foreach迴圈、while迴圈、do-while迴圈、循環嵌套以及控制迴圈的語句如break、continue、goto和return。
Thumbnail
此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
Thumbnail
本文介紹了Python中的流程控制,包括if, elif, else語句,三元運算子,for和while迴圈,以及控制迴圈語句如break、continue和pass。透過範例程式碼,說明了如何使用這些語句和結構進行條件判斷,迴圈遍歷和控制程式流程。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
在程式世界裡,if 條件句是我們的好朋友,幫我們做各種決策。如果不注意可能會讓我們掉進小陷阱。文中透過幾個例子,在使用 if 時可能會遇到的一些常見問題,像是不必要的 if、過於複雜的條件、忘了用嚴格比較,還有嵌套太深的 if。透過這篇文章,你將學到如何避免這些小錯誤,寫出更乾淨、更有效率的程式碼。
Thumbnail
在人生中總是會遇到許多選擇,做了不同的選擇產生的結果也會不一樣,大多時候都是在為了要吃什麼在抉擇,小孩才做選擇大人全部都要,全部都要何嘗也不是一個選擇。 在Python程式語言中也有選擇的語法,就是If Else,如果是就做什麼,不是就做什麼,有別於其他程式語言,他不一定要有else,可以只有If
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
Thumbnail
IF,Switch,三元運算子語法說明 IF條件選擇結構說明 IF為布林條件,當()內條件式滿足True執行if區塊的程式碼,不滿足則執行else區塊的程式碼,若無else也行。