11-10-2018

Python 入門&基本教學介紹!

 

優點一:語法簡單

我們以 C、Java、Python 三種語言為例來比較哪個語法較簡易讓人比較好理解

先看 C 語言。C 語言得寫出下面這段程式碼、存檔、拿著這個原始碼檔去編譯才能在螢幕上印出「Hello! World!」:

#include

int main()
{
   printf(“Hello! World!\n”);
}

接著來看 Java 語言。跟 C 語言很類似得寫出下面這段程式碼歷經「存檔、編譯、執行」三步驟後在螢幕上印出「Hello! World!」字樣:

public class HelloWorld
{
   public static void main(String[] args)
   {
       System.out.println(“Hello! World!”);
   }
}

最後是 Python。Python 只要寫下面這段原始碼直接按 Enter 鍵不必存檔、不必編譯就能直接執行並印「Hello! World!」字樣:

print(“Hello! World”)

很明顯Python 贏了許多如此簡易清楚不用打許多就能完成讓許多人喜歡~

★優點二:功能強大

Python 另一個受歡迎的原因可以用在網頁設計、手機 App 撰寫、遊戲程式設計、硬體自動控制、生物醫學、大數據…等領域。所以Python能說是「萬用語言」阿。

Python 能做到「萬用語言」的原因莫過於他有豐富的「函式庫(Library)」。不但累積了相當完整的標準程式庫 (模組)更有無以計數的非標準模組而且絕大部分都是開放原始碼的。單以內建的模組來講從簡單的數學運算、字串處理、網際網路協定連線、網際網路資料處理、各種壓縮格式以及 POSIX 與主要作業系統的支援功能等等含括的範圍非常地廣泛。
所謂「函式庫」就是把別人事先寫好的一些好用 Python 程式打成一包允許你直接取用而不必學習這些程式背後的寫作原理。

不僅如此Pandas、scikit-learn 和 Tensorflow 等包使 Python 在高級機器學習應用中也有很強的存在感。

 

★優點三:能夠跨平台

各種主要的作業系統都支援 Python。Python 程式常常不需要修改便能同時在 Linux 與 Windows 平台上執行即使撰寫 GUI 程式 (透過 PyGTK, wxPython 等 binding) 也是一樣。所撰寫的 Python 程式透過標準的 distutils (模組) 進行包裝後用標準的方式即可安裝於各種平台;在 Windows 下更可以自動產生方便的可執行 installer。

Python 的缺點

★缺點一:型別安全

Python是一個動態類型的語言,它只能進行動態類型檢查。舉例:由於在Python中,因為integer類型與string類型是不能相加的,所以經常會出現類別錯誤。

★缺點二:執行速度慢

Python 為了能在各種場合都發揮作用,就得取得各種場合的「平衡點」,沒辦法為單一情況做「最佳化」!但這點影響不大,畢竟對使用者而言,機器執行的速度可以忽略,因為感覺不太出速度的差異XD

 



 

Python 的基礎語法

 

變數型態

• 布林(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

 

 

基本運算

Gbvsv4SmO8vvjh2L2mx5il3qNacr0ON824qqZAz_FbH7Jn4ijgMuT8Izvv6TgucFLpMv8GiryDpgcQiM8G_HhO7Zjf3tkiOgG3q7dapeArFP3K0OzIMMdw0QDgTrA7i3ge0J8hN7

 

運算規則:先乘除後加減 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 ’

★Print

- 輸出⾄螢幕 ‣ e.g. print(“Hello”)

- 以空⽩串接字串或數值(會被轉成字串)

 

‣ e.g. print(“Hello”,”Python”,123)

‣ Hello Python 123

 

‣ Print in Python 2 and 3

e.g. print “Hello” (Python 2)

e.g. print(“Hello”) (Python 3)

 

 

 

 

引號

 

- 單引號(’)和雙引號(”)效果相同

- 若字串中需使⽤單或雙引號,則須⽤另⼀種引號括住 ‣ e.g. ‘Hello’ 等於 “Hello” ‣ e.g. “I’m Ben.”

 


字串串接

字串串接(+) ‣ e.g. str = “Hello” + “Python” ‣ HelloPython

字串複製(*) ‣ str = “Hello” * 3 + “Python” ‣ HelloHelloHelloPython

 

 

字串字元取用

 

字串長度 ‣ 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()





更多參考資料:

https://docs.python.org/3.5/library/stdtypes.html

http://www.runoob.com/python/python-basic-syntax.html