Python 從入門到數據分析 第二講 — 變數與基礎運算

來認識變數!

這是Python 從入門到數據分析系列 的第二篇,今天我們就要來正式開始寫程式囉,內容架構如下:

  • Google CoLab
  • 指派運算
  • 計算運算
  • 比較運算
  • 邏輯運算

學完本節,您可以預期以Python作為高效的計算機與撰寫基本的數據邏輯,比如量化交易經常要寫「當價格等於多少、當某技術指標突破多少時,賣出/買入」,學完本章的內容您對於量化知識的邏輯與策略撰寫就具備一定基礎囉!

Google Colaboratory

在寫程式之前我們要先認識「該用什麼寫呢?」,拜Google所賜,現在也很流行在雲端開發,免去安裝環境的煩惱,就是我們的CoLab。

Google Colaboratory (以下簡稱Colab)是一個基於 Jupyter Notebook 的免費服務(須註冊一個 Google 帳號),如果你已經有了 Google 帳號,打開瀏覽器到 https://colab.research.google.com/ 就可以準備開始使用 Google Colab 了。

雲端硬碟 -> 新增 -> 更多 也看得到哦!

一開始會要你建立一本新的 notebook 開始,我們可以看到使用者可以從官方提供的範例(EXAMPLES)、Google Drive、GitHub、自行上傳(UPLOAD)等方式,或是直接用最下面的按鈕建立全新的 notebook,目前 Google Colab 支援 Python 2 及 Python 3 ,也預先安裝了一些常用的 Python 函數庫,一打開就可以開始寫常用的程式。

CoLab的進入介面

初學者可以直接點選歡迎使用CoLab的選項,就有簡單、快速的使用流程,可以先簡單摸一下,了解常用的按鈕。打開來後就會長這樣,是常看見的Jupyter 介面,什麼是Jupyter ?

jupyter的logo

Jupyter是一個非營利組織,旨在「為數十種程式語言的交互式計算開發開源軟體,開放標準和服務」。2014年由Fernando Pérez從IPython中衍生出來,Jupyter支持幾十種語言的執行環境。Jupyter Project的名稱是對Jupyter支持的三種核心程式語言的引用,這三種語言是Julia、Python和R,也是對伽利略記錄發現木星的衛星的筆記本的致敬。

Jupyter Notebook(前身是IPython Notebook)是一個基於Web的交互式計算環境,用於創建Jupyter Notebook文檔。Notebook一詞可以通俗地引用許多不同的實體,主要是Jupyter Web應用程式、Jupyter Python Web伺服器或Jupyter文檔格式(取決於上下文)。

簡單來說,他提供直接的互動介面,我們可以寫一寫就執行查看輸出狀況,對於數據分析來說非常方便,因為我們會想知道對資料操作之後的結果,或者直接畫圖分析數據,而Jupyter的所見即所得就非常適合數據分析這種工作模式,跟R studio有異曲同工之妙

那我們就可以開始寫程式囉!接下來的程式碼您都可以在我的Colab連結找到,歡迎一起練習:點這裡

寫程式介面,以下簡稱Jupyter

通常第一句程式語言都是「嗨 世界XD」就是第一次進到程式語言的世界來打的招呼:使用Print 可以印出我們的操作結果,我們可以打個字:

hello

然後按下這個按鈕

跟播放影片很像,是執行的意思

或者直接按下shift + enter

而因為我們告訴Python :「印出hello world」,所以他就這麼做了,如圖可以看到結果呈現在程式下方。

首先讓我們來介紹一下變數,變數(variable)是程式語言的基礎操作物件,您可以想像寫程式其實就是在操作不同變數,任何一個系統都可以看作是不同變數互動下的整體結構。這種思考方式是非常符合人類認知的,好比我們對形狀有感覺,是因為我們感知到物體在空間的變數、對數量有概念是因為了解變數的測量型態(1、10、100),而Python作為程式語言就是透過電腦理解的語言,讓程式設計師來與之溝通來達到理想的樣子。

指派運算子

定義一件事情

建構變數相當簡單,比方我們今天想要建立一檔300元的股票價格,那麼這支股票的變數就是受到價格定義,可以寫為

stock_price = 300

這是從右邊往左讀的,我把300指派為股價,那麼如果我發現他其實是400元,直接修改即可。

stock_price = 400

這個我們就叫做「指派」,將一個值派給一個名稱來建立變數。

而變數「不只是數字」,像剛剛的數字都是整數,英文就是Integer,我們可以透過type來了解變數類型

int 就是integer的縮寫

以下是幾種常見的變數:我們想像自己「想要在330.3元的時候賣掉2330這隻股票」,那麼這件事情就被以下變數所構成:

  • sell : 是否賣出,Boolean,表達邏輯True 或者False
  • stock_symbol : 股票代碼,我們知道2330雖然是數字,但這邊並不是拿來運算用的(舉例來說,我們不會說台積電(2330) + 台灣50指數(0050) = 虹光精密工業(2380)),這裡的數字沒有運算意義,僅用標示意義,就是一串文字,英文是String
  • stock_future : 未來價格,可以是有小數點的數 — float

算術運算子

Photo by Kari Shea on Unsplash

電腦(computer)也可以翻譯為計算機,Python可以拿來做基本的加減乘除,比方我們發現這隻股票漲了10元,那就可以用以下運算子來更新:

stock_price = stock_price + 10

stock_price

因此由左往右,新的stock_price 就變成410囉!

以此類推,我們對同一隻股票(目前價格410)做個小練習:

  • 漲了20元
  • 跌了30元
  • 價格翻倍
  • 價格砍半

如果覺得要寫很多次stock_price很煩的話,Python 也可以這樣寫哦:

利用+= 其實相當於 加上右邊的數字更新回去,或者你也可以寫到一半按下Tab鍵:

我們的Jupyter就會自動補全code的選項,按一下就可以幫助寫完程式,這樣寫程式會更有效率,你可以想像我們Google的時候常常打字打到一半後面就出現了Google的猜測結果,Jupyter同樣也能做到。

舉一反三,如果我有兩隻股票,我想表達總資產,那怎麼寫呢?

而其他算數運算子如下,可以依據想要的運算功能來寫

常用運算子

比較運算子

如何比較不同變數?

有人應該會想問,咦那如果 = 就是指派,該怎麼表達「等於」呢?上面我們已經會了變數建立與計算,如果想表達邏輯,好比:「當價格大於1000時,賣出」怎麼辦?

那我們可以這樣寫:

用大於即可,等於就是 == ,比如我們知道股價為1000,我們想看看是否真的等於1000:

其他比較運算子如下:

比較運算子一覽

邏輯運算子

如何表達不同關係?

那如果我有不同條件呢?比如我想要「A且B」、「A或是B」的狀況要怎麼辦?可以用邏輯運算子:

非常直覺

也可以很直覺用英文:is 、is not

而 Python 其實也還有成員運算子等運算功能,這些我們會等到學了資料結構再帶大家認識,接著我在CoLab 出了一些小練習,就讓大家練習一下:請判斷下列運算的結果:

請填入下方的格子來讓以下敘述成立:

我目前的股票價格是 400 元
哎呀股票跌了30元!變成了 370 元
朋友說那就跟他370元的水壺一樣,嗨 Python 是真的嗎?
Python: True

那麼這就是本次的第一講:Python 從入門到數據分析 — Python變數與基礎運算,但是寫程式,我們要怎麼教會電腦邏輯?比如販賣機怎麼設計、車子怎麼設計?網頁按鈕按下去會發生什麼事情?

下一章我們就會開始介紹條件來設計程式囉!

歡迎對數據分析、商業策略有興趣的讀者追蹤,我們下一篇文章見!

歡迎想學習Python資料科學、商業分析、金融知識的人一起交流!本部落格的內容全部都是基於「分享」的實作、理論兼顧文章,希望能夠幫助到所有對資料科學領域有興趣的人們,長期關注可按左手邊的Follow!若喜歡我在 Medium 的內容,可以拍個手(Claps)這邊想做個實驗,好讓我知道你/妳喜不喜歡這篇文章:
拍 10 下:簽個到,表示支持(謝謝鼓勵!)
拍 20 下:想要我多寫「商管相關」
拍 30 下:想要我多寫「資科相關」
拍 50 下:我有你這讀者寫這篇也心滿意足了!

敬請期待下一篇!或是您也可以逛逛我的其他資料科學文章,到我的主頁置頂文章獲得良好的目錄體驗。

Python資料科學系列:

如果想跟著我實作資料科學,開始寫程式必知必會基礎系列:

--

--

戴士翔 | Dennis Dai
Finformation當資料科學遇上財務金融

外商分析顧問,Ex- Apple Data Scientist,曾在FMCG巨頭/日商管顧/MBB管顧/高成長電商從事商業分析與數位轉型,專注分享管顧、商業、數據分析的思考。分析/演講/合作歡迎來信:dennis.dai.1011@gmail.com