if else

沒有三元運算

Python沒有?:三元運算,取而代之如下:

max = a if a > b else b

如果 a > b,傳回a。
否則,傳回b。

img

1
2
3
4
5
6
a = 5
b = 100
max = a if a > b else b
print("max = ", max)
min = a if a < b else b
print("min = ", min)
max =  100
min =  5

if

語法

if 條件:
	程式碼1
	程式碼2

	程式碼3

Python 的 if 沒有一對花括號{}包住,使用Tab或空格縮排,區分程式碼區塊
以下雖然有空一行,但前方的空格數量是一致,屬於同一個區塊。

1
2
3
4
5
if 5 < 8 :
    print("hello")

    print("world")
print("ABC")
hello
world
ABC

即便空格很多,若前方空格數量是一致,屬於同一個區塊。

1
2
3
4
5
if 5 < 8 :
            print("hello")
        
            print("world")
print("ABC")

沒有空格會有錯誤

以下程式碼,if條件中的程式碼區塊,左邊沒有任何空格,即便1個空格也可以,如果沒有任何空格,執行會有錯誤。

1
2
3
4
5
6
7
a = 10
b = 20
c = 30
if a < b:
print("a < b")
if a > b:
print("a > b")
    print("a < b")
    ^^^^^
IndentationError: expected an indented block after 'if' statement on line 4

if 包 if

相同的縮排,屬於同一個程式碼區塊。

1
2
3
4
5
6
7
a = 10
b = 20
c = 30
if a < b:
    if a < c:
        print("a < c")
    print("a < b")
a < c
a < b

elif else

其它程式語言Java,C++是else if,Python是elif

條件為True,才執行程式碼區塊。

語法,(無else)

if 條件:
  程式碼區塊
elif 條件:
  程式碼區塊

語法,有else

if 條件:
  程式碼區塊
elif 條件:
  程式碼區塊
else:
  程式碼區塊

多個條件中,只選其中一個條件,條件中的程式碼區塊執行完了,就離開整個if條件。

當多個elif都不符合條件,就會執行else,注意!else非必要存在,即便沒有else,只有if … elif 也可以。

以下程式碼,所有條件,只會執行其中一個條件,然後就離開整個if條件。
不會執行 >= 90 的程式碼區塊後,又去執行 >= 80 的程式碼區塊。

多個條件,只選擇一個條件。

1
2
3
4
5
6
7
8
9
10
11
score = float(input("請輸入成績"))
if score >= 90:
    print("優")
elif score >= 80:
    print("甲")
elif score >= 70:
    print("乙")
elif score >= 60:
    print("丙")
else:
    print("丁")
請輸入成績75
乙

以下程式碼,即便沒有else也能正常執行。

1
2
3
4
5
6
7
8
9
score = float(input("請輸入成績"))
if score >= 90:
    print("優")
elif score >= 80:
    print("甲")
elif score >= 70:
    print("乙")
elif score >= 60:
    print("丙")
請輸入成績50

以下程式碼只會執行一句,程式碼縮排決定層次。

1
2
3
4
5
6
7
score = 85
if score >= 80:
    if score >= 90:
        print("優秀")  # 不會執行
    print("做的好")
else:
    print("再加油")  # 不會執行
做的好

條件使用圓括號

潤年條件有以下二個:

  1. 西元年可被4整除 並且 西元年除100餘數不為0
  2. 西元年可被400整除

以下程式碼使用圓括號把2個條件區分開來。

1
2
3
4
5
year = 2024
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
    print(f"{year}是潤年")
else:
    print(f"{year}不是潤年")
2024是潤年

0 <= x <= 100

if可以使用以下條件語句,x介於 0 至 100之間,0跟100是可以替換。

0 <= x <= 100
0 < x < 100
0 <= x < 100
0 < x <= 100
1
2
3
4
5
6
7
8
9
10
11
score = 55
if 90 <= score <= 100 :
    print(f" {score} 優")
elif 80 <= score < 90:
    print(f" {score} 甲")
elif 70 <= score < 80:
    print(f" {score} 乙")
elif 60 <= score < 70:
    print(f" {score} 丙")
elif 0 <= score < 60:
    print(f" {score} 丁")
 55 丁
1
2
3
4
5
6
7
8
9
10
11
month = int(input("請輸入月份:"))
if 3 <= month <= 5:
    print(f" {month} 月是春天")
elif 6 <= month <= 8:
    print(f" {month} 月是夏天")
elif 9 <= month <= 11:
    print(f" {month} 月是秋天")
elif 12 <= month <= 2:
    print(f" {month} 月是冬天")
else:
    print("你的月份輸入錯誤5")
請輸入月份:5
 5 月是春天

results matching ""

    No results matching ""