---
# System prepended metadata

title: '**Python 程式設計**  by Ivan'

---

# **Python 程式設計**  by Ivan


---
[TOC]

---
## Python簡介
python是什麼語言？
嚴格意義上的說，Python是一種腳本語言，編程語言有多種多樣，但是有開源和閉源之分，Python就是一個開放的核心源代碼的編程語言，它開發代碼的效率非常高，代碼編寫它支持面向對象的編程方式，同樣也可以面對過程，非常靈活，它不但免費，而且可以任意複製。Python是由荷蘭人Guido van Rossum在90年代開發出來的，當初只是為了自娛自樂嘗試編寫一種替代ABC這些編程語言的腳本語言，沒想到碰到大家的喜歡，一直發展至今，後來約會了對多平台的支持。



Python語言源代碼的可行是用C語言進行編寫的，它最強大之處就於它豐富實用的第三方庫（Library），使的編寫程序的速度非常快。

Python程序的擴展名是（.py），首先添加.py文件中的源代碼編譯成Python的字節碼，然後再由Python虛擬機來執行這些編譯好的字節碼，在這一點上與JAVA等程序語言比較相似。通常我們引入或調用另一個程序，它的.py文件會生成一個（.pyc）文件，它是編譯好的的字節碼文件，這樣程序運行起來更快速。

我們也可以再瀏覽器中直接編程，十分方便。
==[線上編程](https://repl.it)==

---

## Python能做些什麼？
* [網路爬蟲]：urllib、requests、lxml、beautiful_soup、scrapy、selenium
* [資料庫串接]：MySQLdb(MySQL)、pymssql(MSSQL)、Psycopg(PostgreSQL)
* [自然語言]：NLTK、jieba
* [統計應用]：pandas、numpy、scipy、matplotlib
* [機器學習]：scikit-learn、TensorFlow
* [影像處理]：PIL、opencv
* [網站架設]：Django、Flask
* [網路分析]：scapy
* [GUI設計]：tkinter、PyQt
* [軟硬整合]：raspberry pi 樹莓派、Arduino
* [遊戲開發]：pygame
* [App開發]：kivy
* [各種服務的API串接]：Bot

--- 
## 課程
* [L1:何為程式設計及基本輸入輸出](https://hackmd.io/@IvanChan/introduction)
* [L2:Variables and Data Types](https://hackmd.io/@IvanChan/L2)
* [L3:Loops and Conditionals](https://hackmd.io/@IvanChan/L3)
* [L4:Function](https://hackmd.io/@IvanChan/L4)
* [L5:Recursion](https://hackmd.io/@IvanChan/L5)
* [番外篇1:Import](https://hackmd.io/@IvanChan/import)
* [L6:String Structure](https://hackmd.io/@IvanChan/L6)
* [L7:Data Structure](https://hackmd.io/@IvanChan/L7)
* [L8:Sorting](https://hackmd.io/@IvanChan/L8)
* [L9:Searching](https://hackmd.io/@IvanChan/L9)
* [L10:Reading Files](https://hackmd.io/@IvanChan/L10)
* [L11:異常處理Exception handling](https://hackmd.io/@IvanChan/L11)
* [L12:推導式comprehensions](https://hackmd.io/@IvanChan/L12)
* [L13:面向對象Object Oriented](https://hackmd.io/@IvanChan/L13)
* [L14:GUI Tkinter](https://hackmd.io/@IvanChan/L14)
* [番外篇2:演算法（Algorithm）](https://hackmd.io/@IvanChan/Algorithm)
 ---

## 練習 
* [練習一: print and input](https://hackmd.io/@IvanChan/ex1)
* [練習二: if](https://hackmd.io/@IvanChan/ex2)
* [練習三: for](https://hackmd.io/@IvanChan/ex3)
* [圖案練習](https://hackmd.io/@IvanChan/graphex)
* [練習四: function](https://hackmd.io/@IvanChan/ex4)
* [練習五: function 2](https://hackmd.io/@IvanChan/ex5)
* [練習六： String structure](https://hackmd.io/@IvanChan/ex6)
* [練習七： Data structure](https://hackmd.io/@IvanChan/ex7)
* [練習八： Data structure2](https://hackmd.io/@IvanChan/ex8)
* [練習九: Sorting](https://hackmd.io/@IvanChan/ex9)
* [練習十: searching](https://hackmd.io/@IvanChan/ex10)
* [練習十一：Files](https://hackmd.io/@IvanChan/ex11)
* [練習十二：推導式comprehensions](https://hackmd.io/@IvanChan/ex12)
* [練習十三：面向對象Object Oriented](https://hackmd.io/@IvanChan/ex13)
*  [練習十四：GUI Tkinter](https://hackmd.io/@IvanChan/ex14)

---
## 編程比賽題目解答
*  [做題注意事項](https://hackmd.io/@IvanChan/com0)
*  [世界 AI 智能創意編程大賽 2021 (港澳賽區)初中組 模擬試題](https://hackmd.io/@IvanChan/com1)

---
## 數學猜想or定理驗證系列
*  [一：3n+1猜想](https://hackmd.io/@IvanChan/math1)
---

## 練手
* [練手一](https://hackmd.io/@IvanChan/exx1)
* [練手二](https://hackmd.io/@IvanChan/exx2)
* [練手三](https://hackmd.io/@IvanChan/exx3)
---

## 參考解答
* [練習一: print and input](https://hackmd.io/@IvanChan/ansex1)
* [練習二: if](https://hackmd.io/@IvanChan/ansex2)
* [練習五: function 2](https://hackmd.io/@IvanChan/ansex5)
* [練習六: String structure](https://hackmd.io/@IvanChan/ansex6)
* [練習七: Data structure](https://hackmd.io/@IvanChan/ansex7)
* [練習八: Data structure2](https://hackmd.io/@IvanChan/ansex8)
* [練習九: Sorting](https://hackmd.io/@IvanChan/ansex9)
* [練習十: Searching](https://hackmd.io/@IvanChan/ansex10)
* [練習十一：Files](https://hackmd.io/@IvanChan/ansex11)
* [練習十二:推導式comprehensions](https://hackmd.io/@IvanChan/ansex12)
* [練習十三:面向對象Object Oriented](https://hackmd.io/@IvanChan/ansex13)
* [練習十四:GUI Tkinter](https://hackmd.io/@IvanChan/ansex14)