Python 教學,要實踐 Python trade 之前,要先了解什麼是 Python ,它和傳統碼有什麼分別,我們先從 Python 3個優勢和2個缺點開始了解。
Python 教學 優勢一:語法簡單
我們以 C++、Java、Python 三種語言為例﹐來比較哪個語法較簡易﹐讓人比較好理解
先看 C++ 語言。C++ 語言得寫出下面這段程式碼、存檔、拿著這個原始碼檔去編譯﹐才能在螢幕上印出「Hello, it is Forex Forest class!」:
#include <stdio.h>
int main() {
printf(“Hello, it is Forex Forest class!”);
}
接著來看 Java 語言。跟 C++ 語言很類似﹐得寫出下面這段程式碼﹐歷經「存檔、編譯、執行」三步驟後﹐在螢幕上印出「Hello, it is Forex Forest class!」字樣:
public class Main {
public static void main(String[] args) {
System.out.println(“Hello, it is Forex Forest class!”);
}
}
最後是 Python。Python 只要寫下面這段原始碼﹐直接按 Enter 鍵﹐不必存檔、不必編譯﹐就能直接執行﹐並印「Hello, it is Forex Forest class!」字樣:
print(“Hello, it is Forex Forest class!”) 很明顯Python 贏了許多﹐如此簡易清楚﹐不用打許多就能完成﹐讓許多人容易入門。
Python 教學 優勢二:功能強大
Python 另一個受歡迎的原因﹐可以用在網頁設計、手機 App 撰寫、遊戲程式設計、硬體自動控制、生物醫學、大數據…等領域。所以Python能說是「萬用語言」啊!
Python 能做到「萬用語言」的原因是它有豐富的「函式庫(Library)」。不但累積了相當完整的標準程式庫 (模組)﹐更有無以計數的非標準模組﹐而且絕大部分都是開放原始碼的。單以內建的模組來講﹐從簡單的數學運算、字串處理、網際網路協定連線、網際網路資料處理、各種壓縮格式﹐以及 POSIX 與主要作業系統的支援功能等等﹐含括的範圍非常地廣泛。
所謂「函式庫」﹐就是把別人事先寫好的一些好用 Python 程式打成一包﹐允許你直接取用﹐而不必學習這些程式背後的寫作原理。 不僅如此﹐Pandas、scikit-learn 和 Tensorflow 等包使 Python 在高級機器學習應用中也有很強的存在感。
Python 教學 優勢三:能夠跨平台
各種主要的作業系統都支援 Python。Python 程式常常不需要修改﹐便能同時在 Linux 與 Windows 平台上執行﹐即使撰寫 GUI 程式 (透過 PyGTK, wxPython 等 binding) 也是一樣。所撰寫的 Python 程式透過標準的 distutils (模組) 進行包裝後﹐用標準的方式即可安裝於各種平台;在 Windows 下更可以自動產生方便的可執行 installer。
Python 的缺點
缺點一:認別類型錯誤
Python是一個動態類型的語言,它只能進行動態類型檢查。舉例:由於在Python中,因為integer類型與string類型是不能相加的,所以經常會出現類別錯誤。
缺點二:執行速度慢
Python 為了能在各種場合都發揮作用,就得取得各種場合的「平衡點」,沒辦法為單一情況做「最佳化」!但這點影響不大,畢竟對使用者而言,機器執行的速度可以忽略,因為感覺不太出速度的差異XD
變數型態
• 布林(Boolean) ‣ True / False
• 整數(Integer) ‣ 24, 100 …
• 浮點數(Float) ‣ 3.1416 …
• 字串(String) ‣ ‘Hello’ , “Hello” …
‣ 確認變數型態:type() e.g. type(3.14) -> float
‣ Python 3 整數無⼤⼩限制
‣ 字串可⽤單引號或雙引號
命名規則
• 可以⽤來命名的字元 ‣ ⼩寫英⽂字⺟(a-z) ‣ ⼤寫英⽂字⺟(A-Z) ‣ 數字(0-9) ‣ 底線(_)
• 規則:開頭不可以是數字
‣ Python 3 統⼀使⽤Unicode (萬國碼)﹐包含中⽂字也都可⽤來命名 (但 不建議) e.g. 變數 = 3
保留字
不能使⽤這些字來命名
‣ False, class, finally, is , return None, continue, for, lambda, True, def, from, nonlocal, while and, del, global, not, with as, elif, if, or, yield assert, else, import, pass break, except, in, raise ,try
基本運算
‣ 運算規則:先乘除後加減 e.g. 2 + 3 * 2 = 8
資料類型轉換
• 轉換成數字:int()
‣ e.g. int(12.3) = 12(無條件捨去)
• 轉換成浮點數:float()
‣ e.g. float(’12.3’) = 12.3 • 轉換成字串:str() ‣ e.g. str(12.3) = ’12.3 ’
– 輸出⾄螢幕 ‣ e.g. print(“Hello, it is Forex Forest class!”)
– 以空⽩串接字串或數值(會被轉成字串)
‣ e.g. print(“We”,”are”, “separated”, “by”, “space”)
‣ We are separated by space
‣ Print in Python 2 and 3
e.g. print “Hello, it is Forex Forest class!” (Python 2)
e.g. print(“Hello, it is Forex Forest class!”) (Python 3)
引號
– 單引號(’)和雙引號(”)效果相同
– 若字串中需使⽤單或雙引號,則須⽤另⼀種引號括住 ‣ e.g. ‘Hello’ 等於 “Hello” ‣ e.g. “It’s is Forex Forest”
字串串接
字串串接(+) ‣ e.g. str = “Hello” + “ForexForestClass” ‣ HelloForexForestClass
字串複製(*) ‣ str = “let” * 3 + “StartTrading” ‣ letletletStartTrading
字串字元取用
字串長度 ‣ len(str)
字元取⽤(i可為負值,代表從最後開始數,-1為最後⼀個位置)
‣ str[i]:第i個字元(從0開始算起)
‣ str[i:j]:從i到j(不包含位置j)
‣ str[:j]:從開頭(0)到j(不包含位置j)
‣ str[i:]:從i到最後
‣ str[i:j:k]:從i到j(不包含位置j),間隔k
‣ Key: 包含頭(i)不包含尾(j)
‣ Python 的切片(Slicing)規則適⽤於 許多地⽅,包含後續課程的串列 (List)、矩陣、資料表(DataFrame) 等資料格式,請務必熟悉。
字串切割與合併
• str.split(分隔符號)
‣ e.g. str.split(“,”)
• str(分隔符號).join(iterable) (iterable置入可迭代的物件如list)
‣ e.g. “,”.join(word_list)
⼤⼩寫轉換
• str.upper():轉⼤寫
‣ e.g. “hello”.upper() ‣ HELLO
• str.lower():轉⼩寫
‣ e.g. “HELLO”.lower() ‣ hello
其他
• 判斷是否是⼤/⼩寫:str.isupper() / str.islower()
• 判斷是否是數字:str.isnumeric()
• 字串取代:str.replace()
總結:
Python 是近年流行的編碼工具,要由零開始學習到上手是很快的,這是由一般了解電腦 C++ 的人說的分享,對於未曾學習電腦碼的人是不易掌握的。如果想用 Python 來進行 AI 投資,實踐 Python trade ,你可以考慮參加 Forex Forest 的5小時自動交易程式入門班, Forex Forest 已經在用 AI 進行自動交易投資,而且學費限時優惠價只需 $388