用#
來註解
註解是在程式中一段會被Python解釋器忽略的文字
>>> print("hi") #尼豪
hi
條件判斷式
if
if condition:
statement
若條件成立,則會執行statement
內的敘述內容; 若條件不成立,則不做任何事情。
statement
前方的空格稱為縮排(indentation)。在一般的程式語言中,會使用{}
或是begin
end
來標記一段程式。可是在Python中,是使用縮排來定義程式的結構,此處的縮排可以是四個空格,也可以是五個空格,依個人喜好決定。雖然我們可以依個人喜好使用任意的縮排形式,可是Python預期同一段落的程式使用一樣的縮排格式,因此縮排對於Python來說是很重要的。根據PEP-8的規定,建議的縮排格式是使用四個空格,而且不要使用tab
或混合使用tab
與空格,它會攪亂縮排的格數。
>>> disaster = True
>>> if disaster:
... print("woe!")
...
woe!
條件成立,所以執行下方所敘述的內容
if
、else
在if
的條件不成立的狀況下,會執行else
裡的程式
if condition:
statement1 (True condition)
else:
statement2 (False condition)
>>> disaster = True
>>> if disaster:
... print("woe!")
... else:
... print("whee!")
...
woe!
使用if
與else
來進行條件比較,根據disaster
的值來執行不同的程式
if
、elif
、else
以上的判斷式受限於一個選項與兩個選項,若是我們要在多個選項中做選擇,該怎麼做呢? 這時我們就要使用if
、elif
、else
來幫助我們解決問題
Note: elif = else if
if condition1:
statement1 (True Condition1)
elif condition2 :
statement2 (True Condition2)
elif condition3 :
statement3 (True Condition3)
else:
statements (Each Condition False)
>>> color = "purple"
>>> if color == "red":
... print(" i love red")
... elif color == "orange":
... print(" i love orange")
... elif color == "yellow":
... print(" i love yellow")
... else:
... print(" i love ", color)
...
i love purple
=
vs==
- = : 指派數值
- == : 相等與否
# 迴圈(loop)
用if
、elif
、else
,程式會單純從上面執行到下面。有時候我們需要非一次性的東西,來幫助我們完成任務,"迴圈"也就因此產生。
while
Python最簡單的迴圈機制就是while
>>> Pets = ['Kiki', 'Joy', 'Rich', 'Lele']
>>> current = 0
>>> while current < len(Pets):
... print(Pets[current])
... current += 1
...
Kiki
Joy
Rich
Lele
while loop
在執行內部敘述前會先執行判斷式,若判斷式為True
則執行,不成立則結束while loop
。
for
Python經常會使用迭代器(iterator),迭代器可以讓在不知道資料結構的大小以及它們的實作方式的情況下遍歷它們
>>> Pets = ['Kiki', 'Joy', 'Rich', 'Lele']
>>> for Pet in Pets:
... print(Pet)
...
Kiki
Joy
Rich
Lele
for
和in
是Python的關鍵字,兩個關鍵字之間放我們的自訂變數,in
後面則是放可迭代(Iterable)的Python物件。
Note: 可執行迭代(Iteration)的物件(objects)都稱為可迭代(Iterable),常見的可迭代Python物件為字串、tuple、字典、集合。
用break
取消,continue
跳過,else
檢查中斷
break
: 希望迴圈在發生某個狀況時停止,但是不確定狀況會在什麼時候發生。continue
: 不想跳出迴圈,只想跳過某個特定狀況。else
: 若迴圈在沒有呼叫break
的情況下正常結束,控制權會被傳給else
。或是也可以稱它為中斷檢查器(break checker)
# break example
>>> for i in "Hello":
... if i == "o":
... break
... print(i)
...
H
e
l
l
# continue example
>>> for i in "Hello":
... if i == "e":
... continue
... print(i)
...
H
l
l
o
# else example
>>> for i in "Hello":
... if i == "a":
... break
... else:
... print("Don't have a")
...
Don't have a
用range()
產生數字序列
range()
函式會回傳指定範圍內的一串數字,除了讓我們不需要事先建立一個大型的資料結構之外,也不需要用到電腦的任何記憶體。
range()
的用法為(start, stop, step)
,若是不設定start
則會自動從0開始,若是不設定step
,則其預設值為1。
>>> for x in range(0,3):
... print(x)
...
0
1
2
>>> for x in range(2, -1, -1):
... print(x)
...
2
1
0