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

本系列會從 Python 基本的語法開始介紹,讓沒有程式背景的新手,也能開始用 Python 程式交易。如果你是進階的交易者,可以點擊連結觀看量化通其他 Python 進階文章,認識 爬蟲實用套件資產配置 等內容。

建議可以先從系列第一篇 如何開始用 Python 程式交易?-Python 從零開始(一),初步認識 Python 常見的金融用途以及常見的名詞 。

延伸閱讀:PyCharm 環境安裝全方位解說

變數-幫資料命名吧!

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

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

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

Python 變數使用範例如下:


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

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

一、資料型態(型別)的種類

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) 字典,可以儲放帶有索引值的資料型態,使用大括號{}和:呈現。

二、資料型態的檢查

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」讓字串複製,使用其他運算方式操作會出錯。

  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 

延伸閱讀:


量化通粉絲社群,定期分享實用資源
✅加入LINE匿名群組量化通QuantPass」無壓力討論與分享!
✅追蹤量化通的粉絲專頁量化通QuantPass」即時獲取實用的資源!

程式交易課程推薦
📣 Python 程式交易系列線上課程,手把手開始用程式交易打造自己的被動收入!

發佈留言

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