iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 6
0
自我挑戰組

從python入門到物聯網系列 第 6

Day06 - 邏輯運算與判斷式

位運運算子

a = 0011 1101
b = 0000 1100

  1. & => 二進位運算的anda & b = 0000 1100
  2. | => 二進位運算的ora | b = 0011 1101
  3. ^ => 二進位運算的xora ^ b = 0011 0001
  4. ~ => 二進位運算的not~ a = 1100 0010
  5. << => 二進位運算的左移,a << 2 = 1111 0100
  6. >> => 二進位運算的右移,a >> 2 = 0000 1111

關係運算子

  1. == => 兩值相等為True
  2. != => 兩值不相等為True
  3. <> => 兩值不相等為True
  4. > => 左值大於右值為True
  5. < => 左值小於右值為True
  6. >= => 左值大於或等於右值為True
  7. <= => 左值小於或等於右值為True
>>> a = 10
>>> b = 20
>>> a == b
False
>>> a != b
True
>>> a > b
False
>>> a < b
True
>>> "hello" == "hello"
True
>>> "hello" == "world"
False
>>> "a" > "b"
False
>>> "b" > "a"
True

不只數值可以比較喔!字串也可以!

邏輯運算子

and: 兩者都成立才為True
or: 其中一個成立就為True
not: 反轉操作,如果其中一個條件成立,反向後回傳為False

# a 和 b 兩者皆大於0才為True,才符合if條件
if ( a and b ):
    print("Yes,a 和 b 兩者皆大於0才為True,才符合if條件")
else:
    print("No")

# a 和 b 其中之一大於0就為True,就符合if條件
if ( a or b ):
    print("Yes,a 和 b 其中之一大於0就為True,就符合if條件")
else:
    print("No")

# a 和 b 其中之一大於0就為True,但加上反向not之後則為False
if not( a or b ):
    print("Yes")
else:
    print("No")

a = 10b = 20 結果

Yes,a 和 b 兩者皆大於0才為True,才符合if條件
Yes,a 和 b 其中之一大於0就為True,就符合if條件
No

a = 10b = 0 結果

No
Yes,a 和 b 其中之一大於0就為True,就符合if條件
No

a、b = 0 結果

No
No
Yes

判斷式

條件判斷在程式中很重要,要先判斷條件是否成立,才能決定要做什麼事情。
依我們昨天BMI為例子,當BMI小於18.5,就要顯示“體重過輕”的訊息。
條件判斷經常使用,所使用的就是if指令。

if判斷式最重要的當然是if嘛,但是有時候情境可能不只一種,
當if成立做A事情,不成立時做B事情,這時候就可以使用else
elif與else視情況而自行增加,elif可以有好幾個。

if、elif、else後面必須加上:
很重要 : 事件描述句要縮排,縮排格式要一致,空格和tab不可以混用。

if(條件):
    執行動作描述句...
    
elif(條件):
    執行動作描述句...
    
else: #不需要寫條件,當不符合上面的條件,其餘所有狀況都會走這裡。
    執行動作描述句...

Try

BMI正常、異常判斷

昨天我們計算了BMI,今天來把它擴充功能吧!

if (BMI < 18.5):
    print("體重過輕")
elif (18.5 <= BMI < 24):
    print("正常範圍")
else:
    print("體重過重")

體重過重的部分也可以分更細

if (BMI < 18.5):
    print("體重過輕")
elif (18.5 <= BMI < 24):
    print("正常範圍")
elif (24 <= BMI < 27):
    print("體重過重")
elif (27 <= BMI < 30):
    print("輕度肥胖")
elif (30 <= BMI < 35):
    print("中度肥胖")
else: #(BMI >= 35)
    print("重度肥胖")

小小娛樂

buy_apple = 1
if see_egg:
    buy_apple = 6

工程師笑話/images/emoticon/emoticon07.gif


上一篇
Day05 - Python的運算符號
下一篇
Day07 - List、tuple、dict、set
系列文
從python入門到物聯網30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
fuhu
iT邦新手 5 級 ‧ 2022-03-12 15:16:26

在關係運算子中提到的 "<>", 在Python中是錯誤的 !

我要留言

立即登入留言