與先前兩篇Python(上)、Python(下)比較起來,課程安排並沒有Python商管程式(一)那麼完善,但也是學到許多,後續會再作介紹。
這次寫心得與上次心境不同在於過去的我,仍躊躇不前,趨於現狀,現在的我,有了一個明確的目標向前邁進,但是一條自己不熟悉且社會價值觀上不被認同的道路,時時刻刻都在檢討自己每一步是否走錯,也用文字去紀錄自己學習的過程。
商管程式(二) 導師:盧信銘 分為 4週
第一週:函數
練習副程式使用,例如:階層計算練習
如果要使用cmd 去作python 互動 則須輸入:
python -u -i test1.py
如要跳出則使用 exit() 或 Ctrl+Z
除此之外,介紹了 Call by value , Call by address , Call by reference的差別
Call by ref.是C++特有,Python 不同於前述為Call by assignment
因為在Python 有分為 mutable: list , dict, set , classes, user-defined
immutable : string , int , float, bool , range
第二週:字串
印象比較深刻是使用副程式 def & zip & lambda去實作確認身分證字號
首先 zip 可以將 兩個list 或 多個list or tuple 用於 for 或 lambda 很方便
lambda 為 python內用過即丟的函數,隨插即用型的配件
sum= lambda x: x+5
又或者是 搭配map 去使用,map內可放dict or list,要用到才會更了解
alist=[6,7,8,9,10]
blist=[]
for i in map(lambda x: x%5,alist):
blist.append(i)
print(blist) #blist 顯示為 [1, 2, 3, 4, 0]
第三週:資料結構
學到的工具有 Dict , Tuples, Datetime
第三週的作業就開始比較有點小難度跟好玩了!
其中,算塗牆的問題,算是比較好玩且輕鬆的題目。
現在給定如下的資料輸入格式:第一行輸入牆壁n面和m次油漆,接下來的m行每行依順序輸入漆的牆壁的起點號碼、漆的牆壁的終點號碼,以及顏色代碼,都是合理的整數。輸出共有m段,於第 i 段輸出在全部油漆動作都完成後,第 i 次油漆之顏色的牆壁面數、一個空格,與該顏色代碼。段與段之間用一個分號隔開。所有牆壁在最初都是顏色 1。
呈現結果大概像下面這樣,也是挺好玩的! 計算最後牆上的漆料號碼
第四週:用 Python 分析財金資料
最痛苦的時刻來臨,前面太簡單,後面有點跳到太難,差點讓我想放棄,但還是沉住氣,一步一步上網google及Stack Overflow去尋找答案。
以下是我學會的技巧:
- 檔案讀寫 (包含 txt , csv)
- 如何安裝pip, pip3
- 如何使用matplotlib (但資料視覺化這部分仍然是我要惡補的部分)
- Dict 與 list , def 副程式 使用
程式碼就不貼上來了! 直接顯示結果,簡單說,就是拿大盤ROI與個股ROI作回歸分析,xlist內裝所有大盤ROI , ylist內裝個股的ROI,X軸為β,Y軸為α,因此y=α+β x+ε,β > 0:意味大盤上漲,個股持正向變動;反之,β < 0:意味大盤上漲,個股反而呈反向變動,下跌趨勢,下圖2016年大盤上漲,大立光與可成上漲力道之大。
α 所代表意義為扣除大盤波動下,個股所呈現上漲或下跌,從公式也可窺知一二。
下面主要是想提醒自己 Dict 字典也可使用append,並可以同一key 裝載多個value,下面就是同一支股票裝入一整年度的ROI值,如果未來自己忘記要再回來看一遍!!!!
為什麼要加 [] 是因為讓它成為 list ,後續才能使用append !!!
這樣 Dict就可以使用append
if (COID not in COIDarr):
COIDarr.append(COID)
stock_each[COID] = [arow[‘ROI’]] #之前卡到,忘記外面加[]
stock_each_num[COID] = 1
else:
stock_each[COID].append(arow[‘ROI’]) #Dict是可以使用append不要懷疑
stock_each_num[COID] += 1
2019.06.04~2019.0703
keep going
Learning by “doing” , not just saying.