Python 變數命名與型態轉換-Python 從零開始(二)


追蹤量化通的粉絲專頁量化通QuantPass」即時獲取實用的資源!

一、變數-幫資料命名吧!

上一篇,我們認識了 Python 常見的金融用途以及常見的名詞,接著我們來看 Python 變數與型態轉換!

Python 的程式語法中主要是由「資料」和「運算」組成的。變數就是拿來裝資料的容器,或者可以說我們幫這個資料命名一個簡短的代稱。變數是透過「=」來賦予兩邊同樣的值,也就是「賦值」。例如: a = 3,a 就是一個變數,之後在後面只要輸入 a 就會代入 3。

在命名變數的時候有幾個需要注意的規定,變數的第一個字母需要用英文開頭,之後可以搭配數字,例如:a1,如果使用 1a 就無法使用。

兩個以上的單字建議用底線「_」來區隔,例如:quantpass_run,或者是以使用目的去命名,這樣做除了比較好閱讀外,未來維護時也不會頭昏眼花。

Python 變數使用範例如下:

a = "123" 
b = '123' 
c = 1 
quantpass_run = True 
NAME = "程式交易"

Py 101209161710
Py 101209161711

二、資料型態(型別)-把資料分門別類

1. 資料型態(型別)的種類

Python的資料型態(型別)我們可以分為四種,都是可以指派到變數裡。分別是:

  • 文字(str)
  • 數字(int、float等)
  • 布林值(bool)
  • 容器(list、dict等)

比較常見的是文字和數字,而容器指的是「可以同時有各種資料」的一種資料型態。這部分會在後面的內容解說,並用範例來示範。

這裡把四種資料型態用表格來說明:

資料型態 英文(縮寫) 說明
文字 / 字串 string(str) 只要使用單引號(’Hello’)或雙引號(”123″)表示,都屬於文字的型態。
數字 integers(int) 整數,如:0、1、2、3 等
float 浮點數,有小數點的數值,相除的結果都會是浮點數。如:1.0、2.5、6.66 等
布林值 boolean(bool) 布林的資料型態只會有兩種結果,True 和 False。要另外注意布林值的開頭字母必須為大寫。
容器 list 串列,可以儲放多種資料的資料型態,以序列方式呈現,使用中括號 [ ] 表示。
dictionary(dict) 字典,可以儲放帶有索引值的資料型態,使用大括號{}和:呈現。

2. 資料型態的檢查

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'> #資料型態為文字

3. 常用字串使用方式:串接、重複、尋找字符

針對文字的資料型態,以下範例示範。文字無法做運算,只能用加號「+」來讓字串疊加,還有乘上數字「*n」讓字串複製,使用其他運算方式操作會出錯。

  1. 使用加號「+」,讓不同的文字資料串接:
a = 'quant' 
b = 'pass' 
print(a + b)

結果:

quantpass
  1. 使用乘號「*n」,讓文字資料重複:
a = 'Hi' 
print(a*2)

結果:

HiHi
  1. 使用「in」,可以查詢文字裡面是否包含某些字符:
a = '學習程式交易' 
print ('程式' in a) 
print ('Python' in a)

結果:

True #變數a裡面有包含程式這兩個字
False #變數a沒有包含Python

三、資料型態轉換- str(變數)、 int(變數) 、 float(變數)、 bool(變數)

在處理資料的時候,只有相同的資料能做運算,所以會直接將資料轉換成自己需要的型態,以下是 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:


量化通粉絲社群,一起討論程式交易!

加入LINE社群量化交易討論群」無壓力討論與分享!

加入臉書社團「程式交易 Taiwan」即時獲取實用的資源!

RoWay
RoWay

多年投資經驗的兩岸三地操盤手,曾任海外資產管理公司交易平台的產品經理、與各外商投資公司合作開發各式交易策略與系統。

擅長用Python執行資料蒐集、整理、分析與交易;也善於用Multicharts、MetaTrader等系統建構並回測期貨、期權、區塊鏈策略進而完成投資組合管理。

文章: 27

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *