Day04 : 程式結構 - 1


#來註解

註解是在程式中一段會被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!

條件成立,所以執行下方所敘述的內容

ifelse

if的條件不成立的狀況下,會執行else裡的程式

if condition:
    statement1 (True condition)
else:
    statement2 (False condition)
>>> disaster = True
>>> if disaster:
...     print("woe!")
... else:
...     print("whee!")
...
woe!

使用ifelse來進行條件比較,根據disaster的值來執行不同的程式

ifelifelse

以上的判斷式受限於一個選項與兩個選項,若是我們要在多個選項中做選擇,該怎麼做呢? 這時我們就要使用ifelifelse來幫助我們解決問題

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)
      ifelifelse,程式會單純從上面執行到下面。有時候我們需要非一次性的東西,來幫助我們完成任務,"迴圈"也就因此產生。

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

forin是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

Ref

#Python #初學者







你可能感興趣的文章

筆記、LIOJ

筆記、LIOJ

SQL DROP TABLE IF EXISTS #tmpTable

SQL DROP TABLE IF EXISTS #tmpTable

從 V8 bytecode 探討 let 與 var 的效能問題

從 V8 bytecode 探討 let 與 var 的效能問題






留言討論