2016年1月31日 星期日

物件導向-繼承

繼承是物件導向的特點之一,要如何判斷一個類別是否應該要繼承某類別。
一個簡單的判斷方法是用"is a"方式
例如animal類別
class animal{

}

而dog類別是否可以繼承animal類別
class dog{

}
答案是可以,因為存在"is a"的關係
但animal就不行,因為不是所有的animal都是dog

而dog繼承可型式如下,extends可以衍生inherit from
class dog extends animal{

}

繼承相關名詞
被繼承的類別animal,叫父類別、base class、super class
繼承的類別dog,子類別、derived class、sub class

2016年1月23日 星期六

Python try/except

Python的try/excpet是用來測試程式或避免程式錯誤而無法執行
保持之好的習慣,將可能會發生錯誤的程式區塊
加到try/excpet裡,如果這程式區塊在try裡正常達執行
則except區塊會被忽略,反之出現錯誤就會跳到except裡執行

下面是一個簡單的例子,資料型態的轉換
字串轉換成數字,如果字串由數字組成
則程式可正常執行,如果不是就會發生錯誤

num = raw_input('Enter a number:')
try:    
    my_num = int(num)
    print my_num
except:    
    my_num = 0
    print "error input"


2016年1月21日 星期四

Python運算元運算規則

Python運算元運算規則,由高到低如下


  1. 括數(Parenthesis),擁有最高優先權
  2. 幕次運算(Exponentiation)
  3. 乘法、除法、和餘數運算
  4. 加法、減法
  5. 由左到右運算


Python 數學運算


下表是Python數學運算操作



Operator Operation
+ 加法
- 減法
* 乘法
/ 除法
** 幕次運算
% 餘數

Python 保留字

以下是Python是保留字,不能用來當變數的名字。

  • and   
  • del   
  • for   
  • is   
  • raise   
  • assert   
  • elif  
  • from  
  • lambda  
  • return   
  • break   
  • else   
  • global   
  • not   
  • try   
  • class   
  • except   
  • if   
  • or   
  • while   
  • continue   
  • exec   
  • import   
  • pass   
  • yield   
  • def   
  • finally   
  • in   
  • print   
  • as   
  • with


Python 變數命名規則


  1. 第一個字母必須是英文字母或底線_
  2. 只能由英文字母、數字或底線_,組成變數名稱
  3. 英文字母大小寫識為不同名稱(Case Sensitive)
合法變數命名: hours、time、_month、days30
錯誤變數命名:24hours、@time、days&30



Git設定不要加入repo的檔案

首先用Cmd切換到工作目錄
執行touch .gitignore
工作目錄就會產生.gitignore檔
之後可以用文字編輯程式開啟
首先要輸入.gitignore
因為這個.gitignore檔本身也要忽略
之後在換行,一行設定一個
可以是資料夾或檔案
如果是資料夾則,設定資料夾底下的所有檔案將被忽略
.gitignore檔影響範圍為所在的資料夾和所有子資料夾
而每個資料夾都可以有.gitignore檔
不限只有一個.gitignore檔
但是上一層資料夾的.gitignore檔會影響下一層資料夾的.gitignore檔


.gitignore檔特殊字元
  • #:註解
  • / :資料夾路徑
  • *:萬用字元「*」
  • !:不要忽略,例如!123.txt表示不忽略123.txt

2016年1月20日 星期三

computer基礎架構

computer基本上由四個單元組成




  1. CPU(Central Processing Unit)
  2.    執行指令

  3. I/O Devices(Input/Output Devices)
  4.  Input Devices:  鍵盤、滑鼠
     Output Devices:  螢幕、 印表機、 DVD 燒錄器

  5. Main Memory: 
  6.   讀取速度較快、但價格較貴,失去電源後資料也會跟著消失。RAM就是 Main Memory。

  7. Secondary Memory:  
  8. 讀取速度較慢、但價格較便宜,失去電源後資料不會消失。硬碟、SD Card、隨身碟都算是Secondary Memory。


2016年1月16日 星期六

數據科學取樣方法


  • Simple Random Sampling

將每個樣本編號,在隨機選號抽出樣本。

  • Stratified Sampling

當樣本有些特色,例如年齡、居住地、國籍等。可以根據這些特色做分類,在從這些分類的群組裡,每個群組取出樣本。

  • Cluster Sampling

當一個群組可以由一個特點所組成,例如年齡、居住地、國籍等。只針對一個特點進行取樣,例如使用年齡分組,只對20~30歲取樣。

  • Systematic Sampling
假設樣本共N個,將樣本以n個分成N/n組,在從1~N/n裡隨機選出k。N/n就可以用k來取樣。

數據科學一般流程

1.問正確的問題
2.框架定義問題,如此可以定義什麼需要測量
3.選擇適當正確的資料測量和清理
4.尋找Pattern得到Key point

2016年1月8日 星期五

Git 基本操作流程

Git的基本流程是
1.切換到資料夾路徑,之後執行git init初始repository。就可以管理這個資料夾了
2.將要加入的新檔案或修改的檔案,使用git add指令加入。我們可以用git status指令查看現在repository的狀態。git add不會將檔案送進repository,只是選擇那些檔案準備送進repository。
3.要將選擇的檔案送進repository,要執行git commit指令。這樣就是一個基本Git管理流程。

而之後修改檔案或加入新檔案到repository,只要執行git add選擇修改檔案或加入新檔案。再執行git commit就可以產生下一版。這裡要注意如果修改檔案或加入新檔案之後沒有執行git add,直接執行git commit。是不會將修改檔案或加入新檔案送到repository。所以最好是先修改好檔案->執行git add->執行git commit的流程進行,確保不會遺漏檔案到repository。