for Python 學習介紹 === 嗨~大家好, 在學習之前先看看一些廢話吧! >撰寫 [name=Shih-Chi Hsu] [time=Jul 17, 2016] > > >修改 >書單新增[Think Python 2e] >[name=Shih-Chi Hsu] [time=Wed, Jul 19, 2017] 聯絡方式:schi.hsu@gmail.com --- ### 事情是這樣發生的... - 有天上網看了些教學,用了python處理一些資料 - 然後去了[Leetcode](https://leetcode.com/)小試身手卻發現自己寫的好爛,用了太多傳統程式的觀念去建構程式,孰不知太多好用的東西我還不知道。 ---- ### 話說回來那為什麼要選擇Python? 1. 簡單好學啊!!入門非常快速,學過就回不去惹 2. C、C++、fortran著重於計算面缺少互動性等(也是可以拉~但是有點麻煩) 3. matlab軟體要價不斐,出社會後很少公司會採用 4. 流行度高,網路上資源多,bug不會卡太久 5. Mac和Linux都有內建,連安裝都不用了,能不用嗎? (~~可是我都在window系統做事~~) 6. 能處理的專業項目類型廣泛 7. 開發時程短 ---- ### 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 [參考於pyladies社群教學文件](http://tw.pyladies.com/~marsw/crawler01.slides.html#/1/1) ----  上圖是2016年12月的[TIOBE](http://www.tiobe.com/tiobe-index/)程式語言排行榜,近年python穩坐第四名附近。 P.S. 碩班在用的fortran和matlab分別為28和18名。 ---- 當然也並不是說Python一定就好,也是有很多限制, 在計算速度上,明顯慢於底層的程式語言, 但是也有相對應的解決方法, 平行化設計、程式架構訓練、將code翻譯至Cython等。 總之,程式語言百百種,找個自己喜歡的好好學下去就對了!!! 感謝大家看了這麼多,希望可以找到很多夥伴加入, 能在地科領域多多推廣Python --- 當然若自身經濟狀況還過得去, 當然很推薦收集一些書籍來讀。 想購書或翻翻書非常推薦 #### [天瓏書局](https://www.tenlong.com.tw/)(北車書街) 原文、繁中、簡中書籍都很齊全,價位也很優惠,也有網路商城。 #### [歐萊禮](http://books.gotop.com.tw/oreilly.aspx) 官網也常常會有5折電子書促銷活動。 ---- ### 資源分類(2016/12/16更新) - 入門 - 資料分析 - 深入了解 - 社群資源 ---- #### 入門 |書名|作者|形式| |---|---|---| |[Introducing Python (精通 Python)](https://www.tenlong.com.tw/items/9863477311?item_id=1007464)|Bill Lubanovic|紙本(英文、簡中、繁中)| |[Python 3.5 技術手冊](http://openhome.cc/Gossip/Books/index.html#Python35)|林信良|紙本 & 線上PPT| |[Python程式設計入門](https://github.com/yehnan/python_book_slides)|葉難|紙本 & 線上PPT| |[莫烦PYTHON](https://morvanzhou.github.io/)|周沫凡|線上影片| |[Think Python 2e](http://greenteapress.com/wp/think-python-2e/)|Allen B. Downey|原文版(線上或PDF下載)、[線上中譯版(form編程派)](http://www.codingpy.com/books/thinkpython2/)| |以上為推薦清單,以下為其他資源| |[自我學習課程 Python](http://yenlung.km.nccu.edu.tw/xms/content/show.php?id=424)|蔡炎龍|線上PPT| |[A byte of python](https://python.swaroopch.com/)|Swaroop C H|GitBook| |[how to make mistakes in python](http://www.oreilly.com/programming/free/how-to-make-mistakes-in-python.csp)|Mike Pirnat|免費PDF檔案下載| |[Python Scripting for Spatial Data Processing](https://pythonizame.s3.amazonaws.com/media/Book/python-scripting-spatial-data-processing/file/85ebbca2-7c5d-11e5-964d-04015fb6ba01.pdf)|Pete Bunting and Daniel Clewley|免費PDF檔案下載| ---- #### 資料分析 |書名|作者|形式| |---|---|---| |[Python for Data Analysis (利用Python進行數據分析)](https://www.tenlong.com.tw/items/7111436733?item_id=1000217)|Wes McKinney|紙本(英文、簡中)| |[Foundations for Analytics with Python (高效率資料分析:使用Python)](https://www.tenlong.com.tw/items/9864762613?item_id=1025981)|Clinton W. Brownley|紙本(英文、繁中)| |[Data Science from Scratch (用Python學資料科學)](https://www.tenlong.com.tw/items/9864761986?item_id=1024589)|Joel Grus|紙本(英文、繁中)| |[NumPy Beginner's Guide (NumPy 學習指南)](https://www.tenlong.com.tw/items/7115339406?item_id=887935)|Ivan Idris|紙本(英文、簡中)| |[IPython Interactive Computing and Visualization Cookbook](https://www.tenlong.com.tw/products/9781783284818)|Cyrille Rossant|作者提供原文電子檔| |[Python Data Science Handbook](https://github.com/jakevdp/PythonDataScienceHandbook)|Jake VanderPlas|作者提供ipython教學檔案| |以上為推薦清單,以下為其他資源| |[NumPy Cookbook]()|Ivan Idris|| |[SciPy and NumPy]()|Eli Bressert|| |[用Python做科學計算(偏舊)]()||| ---- #### Web應用 |書名|作者|形式| |---|---|---| |[Web Scraping with Python (網站擷取:使用Python)](https://www.tenlong.com.tw/items/9864761757?item_id=1023924)|Micha Gorelick and Ian Ozsvald|紙本(英文、簡中、繁中)| |[測試驅動開發:使用 Python](https://www.tenlong.com.tw/products/9789864760244)|Harry J.W. Percival|[原文線上開放](http://chimera.labs.oreilly.com/books/1234000000754)、繁中| |[Django 中文文档 1.8](https://wizardforcel.gitbooks.io/django-chinese-docs-18/content/)|Django 文档协作翻译小组|官方文件簡中翻譯| |[Django documentation](https://docs.djangoproject.com/en/1.10/)|Django|官方文件| ---- #### 應用 |書名|作者|形式| |---|---|---| |[基礎物理學](http://drweb.nksh.tp.edu.tw/student/lessons/F/)|石明豐教授|| ---- #### 深入了解 |書名|作者|形式| |---|---|---| |[High Performance Python]()|Micha Gorelick and Ian Ozsvald|紙本(英文)| |[Python Cookbook 3rd]()|David Beazley and Brian K. Jones|紙本(英文)| |[Cython]()|DSmith, Kurt W|紙本(英文)| ---- #### 社群資源 * [Python Taiwan](https://www.facebook.com/groups/pythontw/?fref=ts)【台灣FB社群】 * [編程派](http://codingpy.com/)【中國社群】 * [Taipei.py](https://www.meetup.com/Taipei-py/)【台北 Python 使用者群組】 * [PyLadies](http://tw.pyladies.com/)【專屬於女生的 Python 愛好者聚會】 * [Django Girls Taipei](http://djangogirls.org/taipei)【活動於台北,專屬女孩的(Django, Python Web)程式工作坊】 * [PyHUG](http://www.meetup.com/pythonhug/)【活動於新竹周邊的 Python 程式員。非常歡迎你加入我們的聚會!】 * [Tainan.py](http://www.meetup.com/Tainan-py-Python-Tainan-User-Group/)【活動於台南周邊的 Python 人客,歡迎來吃!】 * [Kaohsiung Python User Group](https://www.facebook.com/groups/kaohsiungpy/)【高雄地區 Python 使用者的交流園地】 * [花蓮.py](http://www.meetup.com/Hualien-Py/)【活動於花蓮周邊的 Python 玩家,歡迎來花蓮玩】 * [Taichung.py](http://www.meetup.com/Taichung-Python-Meetup/)【Python台中聚會,歡迎大家來玩!Have Fun!】 --- ### 萬事起頭難,如何開始呢? #### Python安裝與環境設定 Python程式上可以分成 主程式、IDE 與 套件 三個部分 整合開發環境(IDE)可以讓我們更順暢的開發程式,也沒有說一定不能用VI之類的, 但是既然都要學新東西了,就試試看這些好用的玩意兒吧! 一般常見的包括 * [notepad++](https://notepad-plus-plus.org/) * [Sublime3](https://www.sublimetext.com/3) * [Visual Studio Code](https://code.visualstudio.com/) * [JetBrains產品系列](https://www.jetbrains.com/) * [Atom](https://atom.io/) #### python2 or 3呢? 推薦直上3,現在大多套件都有支援到3的版本了, 有需要往回看2.7,也比較快速。 #### 編寫環境 推薦全新的寫作方法,[jupyter notebook](http://jupyter.org/), 為一個交互式編譯器,可以支援40多種語言, 入門介紹可參閱[編程派codingpy-Jupyter Notebook 快速入门(上)(下)](http://codingpy.com/article/getting-started-with-jupyter-notebook-part-1/) 主要的執行檔案為ipython格式,可放在github、sagemath、Azure Notebooks上。 是一種全新的寫程式方法,提供一個很好的筆記空間與程式碼執行區塊 ---- ### 本機安裝python以及IDE #### [Anaconda](https://www.continuum.io/why-anaconda) : 大補帖,懶人安裝包。 主程式,常用的套件以及各式IDE皆打包好了 __整合開發環境[IDE]__ 包含Jupyter、IPython、spyder這幾種較有名的程式 #### [Rodeo](https://www.yhat.com/products/rodeo) : 一款仿照R Studion所開發而成的IDE,包裝IPython而成,使用的引擎是Blink 適合資料科學類,但是2015年底才推出,相對較新,2.5.2版剛推出(2017/01),可以期待。 ---- ### 雲端線上編寫空間 #### [sagemath](https://cloud.sagemath.com/) : 環境為Anaconda,上傳檔案方便,為資料夾型態 #### [Azure Notebooks](https://notebooks.azure.com/) : 可自由擴充套件,為專案型態,資料須另放其他開放空間 --- ### 讀書筆記 小弟有再著手整理讀過的書籍筆記,皆為ipython file,放置[github](https://github.com/)公開使用 目前有以下資源 1. [Introducing Python](https://github.com/HuskyHsu/Introducing-Python) 2. [Python for Data Analysis](https://github.com/HuskyHsu/Python-for-Data-Analysis) (進度:ch4) 若有人有興趣加入幫忙整理原文書中文化筆記,歡迎聯絡(schi.hsu@gmail.com)。 p.s. github為工程師們的facebook,上面可以分享自己的程式碼,全為開源專案, 也可以幫忙別人清bug做測試,看到喜歡的專案也可以給予stars鼓勵!! 最重要的是可以用git工具備份程式碼至雲端管理,讓你隨時隨地都能coding(?!)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.