- 登入
- 註冊
在上一篇,我們認識了 Python 常見的金融用途以及常見的名詞,接著我們來看 Python 變數與型態轉換!
Python 的程式語法中主要是由「資料」和「運算」組成的。變數就是拿來裝資料的容器,或者可以說我們幫這個資料命名一個簡短的代稱。變數是透過「=」來賦予兩邊同樣的值,也就是「賦值」。例如: a = 3,a 就是一個變數,之後在後面只要輸入 a 就會代入 3。
在命名變數的時候有幾個需要注意的規定,變數的第一個字母需要用英文開頭,之後可以搭配數字,例如:a1,如果使用 1a 就無法使用。
兩個以上的單字建議用底線「_」來區隔,例如:quantpass_run,或者是以使用目的去命名,這樣做除了比較好閱讀外,未來維護時也不會頭昏眼花。
Python 變數使用範例如下:
a = "123"
b = '123'
c = 1
quantpass_run = True
NAME = "程式交易"
Python的資料型態(型別)我們可以分為四種,都是可以指派到變數裡。分別是:
比較常見的是文字和數字,而容器指的是「可以同時有各種資料」的一種資料型態。這部分會在後面的內容解說,並用範例來示範。
這裡把四種資料型態用表格來說明:
資料型態 | 英文(縮寫) | 說明 |
文字 / 字串 | string(str) | 只要使用單引號(’Hello’)或雙引號(”123″)表示,都屬於文字的型態。 |
數字 | integers(int) | 整數,如:0、1、2、3 等 |
float | 浮點數,有小數點的數值,相除的結果都會是浮點數。如:1.0、2.5、6.66 等 | |
布林值 | boolean(bool) | 布林的資料型態只會有兩種結果,True 和 False。要另外注意布林值的開頭字母必須為大寫。 |
容器 | list | 串列,可以儲放多種資料的資料型態,以序列方式呈現,使用中括號 [ ] 表示。 |
dictionary(dict) | 字典,可以儲放帶有索引值的資料型態,使用大括號{}和:呈現。 |
Pytho在爬取資料的時候,很容易會有資料格式不統一的問題,遇到這樣的狀況就無法被程式正確的解讀。以台積電的股票代號 2330 為例,它實際代表是一個字串,而不是數字,但電腦會判別它是一個整數(int),這樣在跑程式的時候,會非常容易出錯。
因為不同的型態無法作資料的運算,遇到這樣狀況的時候,我們需要先了解變數的型態是什麼,才可以做下一步的處理。
我們可以使用「type(變數)」來檢查這個資料的型態。以下範例說明:
a = 123
b = 6.66
c = '2330'
print(type(a))
print(type(b))
print(type(c))
結果:
<class 'int'> #資料型態為整數
<class 'float'> #資料型態為浮點數
<class 'str'> #資料型態為文字
針對文字的資料型態,以下範例示範。文字無法做運算,只能用加號「+」來讓字串疊加,還有乘上數字「*n」讓字串複製,使用其他運算方式操作會出錯。
a = 'quant'
b = 'pass'
print(a + b)
結果:
quantpass
a = 'Hi'
print(a*2)
結果:
HiHi
a = '學習程式交易'
print ('程式' in a)
print ('Python' in a)
結果:
True #變數a裡面有包含程式這兩個字
False #變數a沒有包含Python
在處理資料的時候,只有相同的資料能做運算,所以會直接將資料轉換成自己需要的型態,以下是 Python 的型態轉換函式:
語法 | 型態轉換 |
str(變數) | 轉換類型為文字str |
int(變數) | 轉換類型為整數int |
float(變數) | 轉換類型為浮點數float |
bool(變數) | 轉換類型為布林值 bool |
不同的資料型態無法相加,以下面的範例來看,變數 a 是文字,變數 b 是數字,如果沒有進行型態轉換程式會出現錯誤訊息(紅字)。
a = '今日股價'
b = 600
print(a+b)
執行結果出現錯誤:
TypeError: can only concatenate str (not "int") to str
所以我們要將 b 改為文字串,就會成功囉!
a = '今日股價'
b = 600
print(a+ str(b))
結果:
今日股價600
本系列會從 Python 基本的語法開始介紹,讓沒有程式背景的新手,也能開始用 Python 程式交易。如果你是進階的交易者,可以點擊連結觀看量化通其他 Python 進階文章,認識 爬蟲、實用套件、資產配置 等內容。
建議可以照順序閱讀,從零開始學習 Python: