iT邦幫忙

2024 iThome 鐵人賽

DAY 5
1

本文目的

今天有兩個學習重點

  1. 比較運算符
  2. 流程控制(if,else)

今天會帶給大家滿滿的思考模式
為什麼會學流程控制呢!?
其實這也是為什麼說學習程式~鍛鍊邏輯的最大目的喔!!

Part1 比較運算符

比較運算符 說明 範例 結果
== 等於 5 == 5 True
!= 不等於 5 != 3 True
> 大於 5 > 3 True
< 小於 3 < 5 True
>= 大於或等於 5 >= 5 True
<= 小於或等於 3 <= 5 True
is 判斷兩個對象是否是同一實例 a is b False
is not 判斷兩個對象是否不是同一實例 a is not b True
in 判斷值是否存在於集合中 'a' in 'abc' True
not in 判斷值是否不存在於集合中 'd' not in 'abc' True

大家可以從數學的概念中很簡單的理解
這些符號跟單字

** 特別注意的是 **

  • 前面學到的 = 代表賦值
  • 程式碼的等於是要兩個 == 來表示
  • 如果答案是對的就會是True 反之,如果是錯的就會是False

常常使用的情境如下

  1. 條件判斷
    在這個範例中,使用 >= 運算符來判斷年齡是否達到 18 歲。
age = 18
if age >= 18:
    print("You are an adult.")
else:
    print("You are a minor.")

這個重點等等會詳細跟大家分享,我們先看程式的描述來感受運算符號的用途

2.循環控制
在這範例中我們要控制次數,執行五次

count = 0
while count < 5:
    print(count)
    count += 1

3.數據過濾

程式的題目最長出的,請篩選偶數給我

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = [num for num in numbers if num % 2 == 0]
print(even_numbers)

4.物件比較

is 和 is not 運算符用來比較兩個變數是否指向相同的對象,這比 == 更高層次,因為它檢查的是物件的記憶體地址而不是它們的值。

a = [1, 2, 3]
b = [1, 2, 3]
print(a == b)  # True, 因為值相同
print(a is b)  # False, 因為兩個變數指向不同的物件

這邊表達的是,我們配置的變數空間都是獨一無二的記憶體位置。 => 就像你家格局一模一樣但住址肯定不同呀!

Part2 流程控制

各位千呼萬喚始出來
我們最核心的程式思路出現辣

學會了邏輯的思考,流程控制
我們就可以更有感受的體悟學程式的感覺

小說明-你不可不知的作用域

空格格(縮排)在 Python 中的作用
在 Python 中,縮排 是** 強制性的**,它決定了程式區塊(block)結構。這與許多其他程式語言不同,例如 C、Java 或 JavaScript,這些語言通常使用大括號 {} 來界定程式區塊,縮排則是風格上的選擇。

通常在 Python 中都會使用 4 個空格或 1 個 tab決定程式的邏輯結構。
** 沒有正確縮排會導致 IndentationError 錯誤 **
python

def greet(name):
    if name:
        print(f"Hello, {name}")
    else:
        print("Hello, Roni!")

javascript

function greet(name) {
    if (name) {
        console.log(`Hello, ${name}`);
    } else {
        console.log("Hello, Roni!");
    }
}

這個可以是python的重要點喔,但同時也是他簡潔易讀的好處~! (不過有時候空格錯誤就爆炸XD)

流程控制起手式 - 第一式 if

if就式英文的假如
也就是如果if後面的是 True 就會執行這個block區段的程式。否則就不做事

age = 20
if age >= 18:
    print("You are an adult.")

流程圖
https://ithelp.ithome.com.tw/upload/images/20240919/20121052Yc4UQh6T9J.png

這邊我告訴了程式如果是滿18歲,你才會print成人的訊息喔
也就是沒有>=18程式就部會執行print那個區塊的程式

流程控制起手式 - 第二式 if else 條件控制範例

只有if我們看不出流程控制的精隨
接下來來學習更有趣的

age = 15
if age >= 18:
    print("You are an adult.")
else:
    print("You are a kid.")

https://ithelp.ithome.com.tw/upload/images/20240919/20121052K1AoemNaO8.png

從這邊就可開始感受到程式的有趣了
如果if 的條件沒有達成
else就會執行 (如果if沒有達成,必定執行喔~!!)

流程控制起手式 - 第三式 if elif else 條件控制範例

我們再繼續強化我們的程式

age = 16
if age >= 18:
    print("You are an adult.")
elif age >= 13:
    print("You are a teenager.")
else:
    print("You are a child.")

https://ithelp.ithome.com.tw/upload/images/20240919/20121052sg5A3dWPUY.png

我們的程式會按照上面的敘述來執行
圖片的概念會由左向右來判斷。如果達成了就會印出來

流程控制起手式 - 第四式 嵌套的 if else if else 條件控制範例

最後是最酷的範例

age = 20
if age >= 18:
    if age >= 65:
        print("You are a senior.")
    else:
        print("You are an adult.")
else:
    print("You are a kid.")

https://ithelp.ithome.com.tw/upload/images/20240919/20121052UhYQfoCrYo.png

大家可以看到我想表達的是
Step 1 檢查年齡開始~!
Step 2 >=18 走左邊 如果小於 就是印出minor
step 3 判斷是否年齡>65 如果是就是senior 否則就是adult

雖然教學的是先說明在劃出圖片。
但是我建議大家
撰寫程式的時候可以先思考流程圖怎麼走, 再去寫程式喔
如此一來,將可以比較精準地控制程式的走向

很多程式都是直接開幹
但是後來發現流程欠缺思考而導致失敗或是沒有考量的錯誤發生

練習

大家可以思考這個問題從流程圖怎麼變成程式碼喔

https://ithelp.ithome.com.tw/upload/images/20240919/20121052xFuq0xVbnw.png


上一篇
[Day3] 程式語言的容器魔術箱 - 變數
下一篇
[Day5] 複習流程控制 - if else 的思路 跟 軟體設計流程分享
系列文
從概念到應用:Python實戰開發學習之旅31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言