Python那些事

Python這幾年很火,在這裏我用問答的方式來總結一下使用python的一些常見問題,對本身是個總結,也但願對有一樣問題的朋友有幫助。
 
Q:Python爲何流行?
A:Python是一個比較方便的跨平臺腳本語言。對於像我這種從C#轉型Java的程序員,我更但願用python在Linux寫腳本,而不用shell script,由於shell script實在很差懂。Python近幾年的流行要歸功於numpy和pandas,以及大數據和數據分析的流行。這些庫使python成爲數據分析的不二選擇。
 
Q:Python 2.7和Python 3+用哪一個?
A:若是用python作些小項目,寫些分析數據的腳本,其實2.7就夠用了。並且主流Linux通常都有python2.7,屬於拿來就用,其實挺好的。可是若是開發大型項目,那麼最好仍是python3,特麼是須要使用coroutine的時候,用python3原生的方法更好。可是若是項目中會使用不少第三方庫的話,最好預先檢查一下這些庫有沒有python3的版本。通常主流的庫如今都支持python3了。
 
Q:PyPy仍是CPython?
A:先說一下PyPy是啥。PyPy是一個用python實現的python虛擬機。相比CPython,因爲PyPy大量使用了JIT優化,因此運行速度比CPython要快不少。可是,一些重要的第三方庫,像Pandas和numpy都不支持pypy,這也就嚴重限制了Pypy的實用性。同時在python中有個叫Global Interpreter Lock(GIL)的東西,這從本質上限制了python語言的高併發執行效率,因此若是追求性能的話,golang可能會比pypy更合適。
 
Q:Windows仍是Linux?
A:開發python仍是用Linux吧,在windows 下開發很彆扭,conda啥的真的不是很好用。在windows下寫腳本就更用不到python 了。Powershell這個微軟推崇的東西更好用一點。
 
Q:Pydev仍是Pycharm?
A: 這個看我的習慣。不少用python 的人都是Java程序員,用eclipse 的會以爲Pydev更好,用IntelliJ的會以爲Pycharm更好用。
 
Q:Pypi是啥?
A:Pypi是相似nuget和maven的東西。用於管理第三方庫。注意pypi是沒有org的概念的。因此若是你的庫和上面已經有的庫重名的話,那你就只能更名了。因此若是準備把本身的庫發到pypi上的話,最好先查查名字有沒有已經被使用。
 
Q:Python開發環境有什麼不一樣?
A:相比開發Java或者C#這種靜態語言,開發Python能夠經過使用REPL大幅提升效率。經過交互式命令行,咱們能夠把調試須要的數據都預先讀好,再經過shell來進行交互式的編程。這種編程方式節約了調試時啓動程序的時間,能夠大大提升編程效率。在這裏強力推薦使用ipython。
 
Q:Python適合編程新手麼?
A:如今不少學校把python做爲學生的第一編程語言。這個我我的認爲並很差。Python語言過於靈活,並不適合新手打好編程基礎。沒有很好編程習慣的程序員在面對幾萬行python的項目的時候會很是不知所措,他們寫的代碼也會很難維護。
 
Q:Jupyter ipython notebook要不要用?
A:如今不少cloud平臺提供免費的noteobok來使用,我的只推薦進行簡單的數據分析和demo的時候用。由於notebook的代碼很差進行版本控制和單元測試。單元測試對於python來講過重要了。
 
Q:Python有哪些經常使用的庫?
A:環境配置:virtualenv,pip
網頁編程:Django,pyramid或者flask
數據庫:sqlalchemy,alembic
數據分析:numpy,pandas,matplotlib,scikit-learn
單元測試:pytest,mock
 
這裏先寫10個,之後想起來啥再慢慢加。
相關文章
相關標籤/搜索