0%

Python 的 if-else

之前講了一堆資料結構,現在來講判斷式 if-else 怎麼用好了

If-else 的用法

在 C 語言裡面,if-else的寫法為:

1
if(a)
2
{
3
    printf(a);
4
}
5
else if(b)
6
{
7
    printf(b);
8
}
9
else
10
{
11
    printf("None");
12
}

就是有 () 和 {} 所包圍,但是 Python不用,他只有”:”
Python 寫久了 C 都會忘記加分號 = =

1
if a:
2
    print(a)
3
elif:
4
    print(b)
5
else:
6
    print("None")

尤其是 else if 的部分, Python 是寫成 elif,挺特別的。

Python 比較、Boolean運算子

與 C 語言做個比較:

運算子 Pthon C
相等 == ==
不相等 != !=
大小於 > < ><
and and &&
or or 兩條直槓 (好像會被md當作表格,無法表示)
not not !
NULL None NULL

Python 什麼時候會顯示 false:

  1. None
  2. ‘’ 空字串
  3. [] 空list
  4. {} 空dict
    等等

If-else 慣用語

Python 有一些 官方比較建議的用法

  1. 不要與 True 和 False 做比較:
    X 錯誤!!!!:
    1
    if a == True:
    2
        print('true')
    3
    if b == False:
    4
        print('false')
    O 正確!!:
    1
    if a:
    2
        print('true')
    3
    if not b:
    4
        print('false')
  2. strings、lists、 tuples 等等的資料結構,當空的時候就是 false 所以不用判斷長度為0:
    X 錯誤!!!!:
    1
    if len(data) == 0:
    2
        print('empty!')
    O 正確!!:
    1
    if not data:
    2
        print('empty!')
  3. None 比較要使用 isis not:
    X 錯誤!!!!:
    1
    if a == None:
    2
        print('None!')
    O 正確!!:
    1
    if a is None:
    2
        print('None!')
  4. 善用 in :
    有時候我們的 data 有可能要和很多東西做比較,會寫成這樣
    X 錯誤!!!
    1
    if name == 'Mike' or name == 'Jenny' or name == 'Lulu':
    2
        print('yes')
    看起來就很醜= =
    不如試試用 in 加上 tuple
    O 正確!!:
    1
    if name in ('Mike','Jenny','Lulu'):
    2
        print('yes')

    資料來源:

    Python 學習筆記 系列
    精通 Python:運用簡單的套件進行現代運算
    Python 慣用語