作為軟體工程師最基本的能力就是程式能力,程式語言有很多種。在自動化測試,目前比較常用的是 Python / Javascript / Java。程式語言的基礎都差不多,先挑一種入門就好,這裡主要會使用 Python 作例子,目前亦是市場上較多公司選用的, 語法
簡單,跟英文寫法相似,對新手比較友善。後面搭配相對成熟的測試框架 PyTest 作介紹。
語法:程式語言中表達意思的規範。不同的程式語言都會有不同的規範,不用死記硬背,因為背也沒用,會不斷被更新的,所以用到的時候再 google 或查官方文件即可。
請先下載並安裝 Python
開發環境 (Integrated Development Environment IDE) :
建議使用:
我個人習慣使用 PyCharm,所以後續部分內容會應用 PyCharm 講解,如目前沒有個人偏好,可先跟著使用 PyCharm。
程式檔:
程式檔在不同語言都會有不同的副檔名,設定正確才能執行,像 Python 的程式檔需要是 .py
簡單先寫個程式檔來執行吧,簡單建立一個程式檔命為 **hello_world.py**
。
# 應用 # 可標示單行註解 (Comment),一般用來寫相關的描述
# 符號到該行結尾之間的敘述並不會被執行
# 在 **終端機 (Console)** 印出 () 內的字句
print("Hello World")
Hello World
會是讓所有工程師出現共鳴的字句,因為是學習任何一種程式語言的第一步就是印出 Hello World。簡單的內容除了學習怎樣印出結果 (Output),也是用來確認程式 環境建置 是否正確。
變數 Variable:
變數是一個容器用來儲存不同的資料,這個資料是可以改變的。
counter = 0
print(counter) # 可以用 print() 列印變數的值
counter = 1
# 使用 f"" 可列印出含有文字和變數的內容,變數需要用 {} 標示
print(f"Counter: {counter}")
Output:
0
Counter: 1
型別 Type:
變數的型別有很多種,用來存儲不同類型的數據。
常用的基本型別
int
(整數 Integer)float
(浮點數 Float):可理解為有小數bool
(布林值 Boolean): 只有 True / False 2 個數值str
(字串 String):需要用引號標示為字串,可用單引號 (’
) , 雙引號 (‘’
) 來標示單行字串,或用三個單引號 (’’’
) 標示多行字串,字串首尾必須用雙同的引號。list
串列, tuple
序對, set
集合, dict
字典Python 的變數沒有固定型別,可以隨時根據內容改變:
a = 123
# type() 為內建 function,可以取得 variable 的型別
print(type(a))
a = "abc"
print(type(a))
a = True
print(type(a))
a = 1.2
print(type(a))
Output:
<class 'int'> # 表示類型為 integer
<class 'str'> # 表示類型為 string
<class 'bool'> # 表示類型為 boolean
<class 'float'> # 表示類型為 float
運算子 Operator
可以透過使用 運算子 作數據處理,運算子有很多類型,以下列出常用的四種:
算術 Operator:
+
) ,減 (-
) ,乘 (*
) ,除 (/
)//
):得到的結果為 int 的型別,小數部分直接捨去,並非四捨五入。%
):取得相除以後的餘數**
): a ** b
即 a 的 b 次方result = 1 + 2
print(f"1 + 2 = {result}")
result = 2 - 1
print(f"2 - 1 = {result}")
result = 2 * 3
print(f"2 * 3 = {result}")
result = 5 / 2
print(f"5 / 2 = {result}")
result = 5 // 2
print(f"5 // 2 = {result}")
result = 5 % 2
print(f"5 % 2 = {result}")
result = 2 ** 3
print(f"2 ** 3 = {result}")
Output:
1 + 2 = 3
2 - 1 = 1
2 * 3 = 6
5 / 2 = 2.5
5 // 2 = 2
5 % 2 = 1
2 ** 3 = 8
應用算術的 Operator 的時候,要注意變數的型別,像是 String 跟 Integer 是不能相加的。但 Python 有個很特別的地方是字串可以被整數相乘,日後針對有字數限制的欄位測試,這可以簡單造出測試資料,非常實用。
print("ABC" + 3) #Error print("A" * 4) # Output: AAAA
比較 Operator:
>
)、小於 (<
)、大於等於 (>=
)、小於等於 (<=
)、相等於 (==
)、不等於 (!=
)print(f"5 > 2: {5 > 2}")
print(f"2 != 2: {2 != 2}")
Output:
5 > 2: True
2 != 2: False
指派 Operator
=
, 像之前應用變數的時候,指派數值給變數 (I.e. counter = 0
)+=
: 給予的值會與變數本身的值相加。即 a += b
意思會是 a = a + b
-=
, *=
, /=
, //=
, %=
都是類似的意思。邏輯 Operator
and
: 是為交集的判斷
a | b | a and b |
---|
True | True | True | 當 a 和 b 都是 True 的時候結果為 True |
True | False | False | 只要其中一個是 False 都會是 False |
False | True | False | 同上|
False | False | False | 同上|
or
: 是為聯集的判斷
| a | b | a or b |
| --- | --- | --- | --- |
True | True | True | 只要其中一個是 True 都會是 True |
True | False | True |同上|
False | True | True |同上|
False | False | False | a 和 b 都是 False,結果只能是 False|
not
: 否定的意思
a | not a |
---|
True | False | a 為 True , not a 則相反為 False |
False | True | a 為 False , not a 則相反為 True |
函數 Function:
把運算步驟封裝,給予 輸入值 (Input) ,經 Function 處理後,產生 輸出值 (Output)。
每種程式語言都有很多內建的函數,print() 就是一個例子,給他字串就會印在終端機。
亦可以自建 function,如下:
function 可帶入 參數 parameter
(如下例的 x, y),視為 Input, return
的值為 output。
不一定要有 return,會視乎 function 是否需要回傳 Output。
def num_sum(x, y)
return x + y
# 會先執行 num_sum() 取得 output,再執行 print() 使結果印在 Console
print(num_sum(1, 1))
print(num_sum(2, 3))
Output:
2
5
應用 Function,可提高運算程式的重用性,可輸入不同的資料,執行相同的 Function 而得到不一樣的結果。
今天先到這裡了,有以上的概念,你已經可以寫出很多運算的程式了,例如:
另外推薦一個 Python 的練習網站:https://py.checkio.org
它是以遊戲方式,讓你熟悉 Python 的語法。