Shopping Cart

購物車內沒有任何商品。

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

立即訂閱電子報,掌握最新資訊!

    稱呼

    電子郵件

    以下非必填,但若您願意分享,我們將能推送更精準的內容給您

    投資經驗

    是否為理工科背景、工程師或有寫程式的經驗?

    有興趣的主題
    量化交易台股期貨海外期貨虛擬貨幣美股

    有興趣的量化交易軟體/平台
    不清楚MultiChartsTradingViewPythonXQ

    想透過量化交易達成甚麼目的?
    不確定自動交易選股回測投資績效量化自己的投資方法想找現成的策略套用

    還有什麼想詢問的?

    20241111 1920 400
    20241111 978 258


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

    上一篇,我們認識了 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社群量化交易討論群」無壓力討論與分享!

    加入Discord 「量化交易討論群」即時獲取實用的資源!

    Write Together 101306261122
    Write Together 101306261121
    RoWay
    RoWay

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

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

    文章: 28

    發佈留言

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