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

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

    電子郵件

    有興趣的主題
    量化交易金融知識台灣股市國內期貨海外期貨虛擬貨幣

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

    還有什麼詢問的?

    好富投 1920x400
    好富投 978x258

    點我了解更多資訊


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

    上一篇,我們認識了 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:

      電子郵件

      有興趣的主題
      量化交易金融知識台灣股市國內期貨海外期貨虛擬貨幣

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

      還有什麼詢問的?


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

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

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

      RoWay
      RoWay

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

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

      文章: 28

      發佈留言

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