【Python】Python - Python If ... Else.

 【Python】Python - Python If ... Else.

Python可以執行運算中的邏輯判斷:

  • 是否相等: a == b
  • 是否不相等: a != b
  • 小於: a < b
  • 小於或等於: a <= b
  • 大於: a > b
  • 大於或等於: a >= b

這些判斷可以在許多地方上使用,大部分使用在"if statements"與迴圈。

一個"if statement"使用if keyword.


範例

If statement:

a = 33
b = 200
if b > a:
  print("b is greater than a")
上面輸出: b is greater than a

在這個範例中我們使用2個變數的範例a與b,使用在if statement中去測試b是否大於a,當a=33而b=200所以我們知道200是大於33的,所以我們會執行到列印的部分,會把print()中的文字顯示在畫面中。

縮排(Indentation)

python使用縮排(在行開始前面塞空白,不可為tab)來定義程式碼的區塊。其他程式語言通常使用大括弧。

範例

如果使用If statement但卻沒有縮排 (將會有錯誤訊息):

a = 33
b = 200
if b > a:
print("b is greater than a"# you will get an error
  File "test_if_error.py", line 4
    print("b is greater than a")
        ^
IndentationError: expected an indented block

Elif

The elif keyword 使用python的說法意思是“如果前面的狀況不真,則測試這個狀況”。

範例

a = 33
b = 33
if b > a:
  print("b is greater than a")
elif a == b:
  print("a and b are equal")
上面輸出:a and b are equal

這個範例a相等於b,所以第一個狀況不為真,但elif的狀況為真,所以我們會列印"a and b are equal"。


Else

The else keyword 會捕捉前面所有不真的情況。

範例

a = 200
b = 33
if b > a:
  print("b is greater than a")
elif a == b:
  print("a and b are equal")
else:
  print("a is greater than b")
上面列印:a is greater than b

上面的範例a>b,所以第一個情況不為真,且elif的情況也不為真,所以我們走到else的狀況,並執行列印這些文字到螢幕上。


你也能在沒有出現elif的情況單獨的使用else:

範例

a = 200
b = 33
if b > a:
  print("b is greater than a")
else:
  print("b is not greater than a")
上面列印:b is not greater than a

 短寫的If

如果只有1個statement要執行,你可以放在與if同一行內。

範例

一行的 if statement:

if a > b: print("a is greater than b")
上面輸出: "a is greater than b"

短寫的If ... Else

如果只有1個statement要執行,一個為 if的,另一個為else,可以將這些放在同一行:

範例

只有1行的if else statement:

a = 2
b = 330
print("A"if a > b else print("B")
上面輸出: "B"

這個技巧稱為三元運算子(Ternary Operators)與條件表達式(Conditional Expressions)。

可以有多個else statements在同一行:

範例

下面的範例只有一行的if else,但有3個情況:

a = 330
b = 330
print("A"if a > b else print("="if a == b else print("B")
上面輸出: =


且(And)

and keyword是個邏輯操作子,使用在與條件陳述式結合:

範例

測試是否a大於b,且是否c大於a:

a = 200
b = 33
c = 500
if a > b and c > a:
  print("Both conditions are True")
上面輸出: Both conditions are True

或(Or)

or keyword是個邏輯操作子,使用在與條件陳述式結合:

範例

測試是否a大於b,或者是否a大於c:

a = 200
b = 33
c = 500
if a > b or a > c:
  print("At least one of the conditions is True")
上面輸出: At least one of the conditions is True

巢狀的 If

如果在if 陳述式裡面又有if陳述式,這個稱為巢狀if陳述式。

範例

x = 41

if x > 10:
  print("Above ten,")
  if x > 20:
    print("and also above 20!")
  else:
    print("but not above 20.")
上面輸出: 
Above ten,
and also above 20!

pass 陳述式

if statements 不可為空,但如果因為某些原因要讓if內沒有內容,需要放入pass statement去避免錯誤訊息。

範例

a = 33
b = 200

if b > a:
  pass
上面會執行到pass那段




留言

這個網誌中的熱門文章

【多益】現點現做的英文怎麼說呢?

《Microsoft Word 應用》:圖片被文字蓋住解決方法,不可設定為固定行高

如何在Ubuntu系統上安裝Notepad ++ (Install Notepad++ On Ubuntu 16.04 / 17.10 / 18.04 / 20.04)