1. 程式人生 > >為什麼說Python是全棧式開發語言

為什麼說Python是全棧式開發語言

Python 的排名從去年開始就藉助人工智慧持續上升,現在它已經成為了第一名。但排在前四名的語言 Python、C、Java 和 C++都擁有廣大的使用者群體,並且他們的使用者總量也十分相近。實際上,Diakopoulos 在對公司招聘所要求的基本語言分析中,C 語言的需求甚至還要在 Python 之前。

下面是日常Python在公司的一些基礎應用:

1、驗證演算法:就是對公司一些常見設計演算法或者公式的驗證,公式程式碼化。

2、快速開發:這個大家應該都比較熟悉,快速開發,就是用成熟框架,更少的程式碼來開發網站,Python在網站前後臺有大量的成熟的框架,如django,flask,bottle,tornado,flask和django的使用較多,國內用Python開發的網站有:知乎、豆瓣、扇貝、騰訊、阿里巴巴;

3、測試運維:用python實現的測試工具及過程,包含伺服器端、客戶端、web、andriod、client端的自動化測試,自動化效能測試的執行、監控和分析,常用selenium appium等
框架。做運維同學應該清楚,在Linux運維工作中日常操作涵蓋了監控,部署,網路配置,日誌分析,安全檢測 等等許許多多的方面,無所不包。python可以寫很多的指令碼,把“操作”這個行為做到極致。與此同時,python在伺服器管理工具上非常豐富,配置管理(saltstack) 批量執行( fabric, saltstack)  監控(Zenoss, nagios 外掛)  虛擬化管理( python-libvirt) 程序管理 (supervisor) 雲端計算(openstack) ......  還有大部分系統C庫都有python繫結。

4、資料分析:Python有三大神器:numpy,scipy,matplotlib,其中numpy很多底層使用C語言實現的,所以速度很快,用它參加各種數學建模大賽,完全可以替代r語言和MATLAB。spark,Hadoop都開了Python的介面,所以使用Python做大資料的mapreduce也非常簡單,加上py對資料庫支援都很好,或者類似sqlalchemy的orm也非常強大好用。

特別是目前,Python在雲基礎設施,DevOps,大資料處理等領域都是炙手可熱的語言。

領域————————流行語言

雲基礎設施————Python, Java, Go

DevOps——Python, Shell, Ruby, Go

網路爬蟲————Python, PHP, C++

資料處理                Python, R, Scala

雲平臺分為私有云和公有云。私有云平臺如日中天的OpenStack,就是Python寫的。如果嫌麻煩不想自己搭建私有云,用公有云,不論是AWS,GCE,Azure,還是阿里雲,青雲,在都提供了Python SDK,其中GCE只提供Python和JavaScript的SDK,而青雲只提供Python SDK。可見各家雲平臺對Python的重視。提到基礎設施搭建,不得不提Hadoop,很多第三方庫封裝了Hadoop的API介面(pydoop,hadoopy等等)。

DevOps

DevOps有個中文名字,叫做開發自運維。網際網路時代,只有能夠快速試驗新想法,並在第一時間,安全、可靠的交付業務價值,才能保持競爭力。DevOps推崇的自動化構建/測試/部署,以及系統度量等技術實踐,是網際網路時代必不可少的。

自動化構建是因應用而易的,如果是Python應用,因為有setuptools, pip, virtualenv, tox, flake8等工具的存在,自動化構建非常簡單。而且,因為幾乎所有Linux系統都內建Python直譯器,所以用Python做自動化,不需要系統預安裝什麼軟體。

自動化測試方面,基於Python的Robot Framework企業級應用最喜歡的自動化測試框架,而且和語言無關。Cucumber也有很多支持者,Python對應的Lettuce可以做到完全一樣的事情。Locust在自動化效能測試方面也開始受到越來越多的關注。

自動化配置管理工具,老牌的如Chef和Puppet,是Ruby開發,目前仍保持著強勁的勢頭。不過,新生代Ansible和SaltStack——均為Python開發——因為較前兩者設計更為輕量化,受到越來越多開發這的歡迎,已經開始給前輩們製造了不少的壓力。

在系統監控與度量方面,傳統的Nagios逐漸沒落,新貴如Sensu大受好評,雲服務形式的New Relic已經成為創業公司的標配,這些都不是直接通過Python實現的,不過Python要接入這些工具,並不困難。

除了上述這些工具,基於Python,提供完整DevOps功能的PaaS平臺,如Cloudify和Deis,雖未成氣候,但已經得到大量關注。

網路爬蟲

網路爬蟲是Python的傳統強勢領域,最流行的爬蟲框架Scrapy,HTTP工具包urlib2,HTML解析工具beautifulsoup,XML解析器lxml,等等,都是能夠獨當一面的類庫。

資料處理

Python也是資料科學家最喜歡的語言之一。和R語言不同,Python本身就是一門工程性語言,資料科學家用Python實現的演算法,可以直接用在產品中,這對於大資料初創公司節省成本是非常有幫助的。正式因為資料科學家對Python和R的熱愛,Spark為了討好資料科學家,對這兩種語言提供了非常好的支援。

對了,還有iPython,這個工具如此有用,iPython Notebook的筆記本檔案可以共享給其他人。

為什麼是Python

正是因為應用開發工程師、運維工程師、資料科學家都喜歡Python,才使得Python成為大資料系統的全棧式開發語言。

對於開發工程師而言,Python的優雅和簡潔無疑是最大的吸引力,在Python互動式環境中,執行import this,Python社群一直非常有活力,Python的軟體包增長速度一直比較穩定,同時軟體包的質量也相對較高。

對於運維工程師而言,Python的最大優勢在於,幾乎所有Linux發行版都內建了Python直譯器。Shell雖然功能強大,但畢竟語法不夠優雅,寫比較複雜的任務會很痛苦。用Python替代Shell,做一些複雜的任務,對運維人員來說,是一次解放。

對於資料科學家而言,Python簡單又不失強大。和C/C++相比,不用做很多的底層工作,可以快速進行模型驗證;和Java相比,Python語法簡潔,表達能力強,同樣的工作只需要1/3程式碼;和Matlab,Octave相比,Python的工程成熟度更高。不止一個程式設計大牛表達過,Python是最適合作為大學電腦科學程式設計課程使用的語言——MIT的計算機入門課程就是使用的Python——因為Python能夠讓人學到程式設計最重要的東西——如何解決問題。

順便提一句,微軟高調宣佈提高Python在Windows上的程式設計體驗,包括Visual Studio支援Python,優化Python的C擴充套件在Windows上的編譯等等。腦補下未來Python作為Windows預設元件的場景。

如此可見Python號稱全棧式語言是肯定有道理的。

目前來學的人群分為以下幾類:

第一類:入行程式設計新手:大學剛畢業或者其他行業轉崗,想從事程式設計開發的工作,目前認為Python比較火,想入行;

第二類:Linux系統運維人員:Linux運維以繁雜著稱,對人員系統掌握知識的能力要求非常高,那麼也就需要一個程式語言能解決自動化的問題,Python開發運維工作是首選,Python運維工資的薪資普遍比Linux運維人員的工資高。

第三類:做資料分析或者人工智慧:不管是常見的大資料分析或者一般的金融分析、科學分析都比較大程度的應用了資料分析,人工智慧的一些常見應用也使用了Python的一些技術。

第四類:在職程式設計師轉Python開發:平常只關注div+css這些頁面技術,很多時候其實需要與後端開發人員進行互動的,現在有很多Java程式在轉到Python語言,他們都被Python程式碼的優美和開發效率所折服

第五類:其他:一些工程師以前在做很多SEO優化的時候,苦於不會程式設計,一些程式上面的問題,得不到解決,只能做做簡單的頁面優化。 現在學會Python之後,可以編寫一些查詢收錄,排名,自動生成網路地圖的程式,解決棘手的SEO問題。

本文來自石家莊IT培訓網:sjz.cnitedu.cn,轉載請註明出處。


相關推薦

為什麼說Python開發語言

Python 的排名從去年開始就藉助人工智慧持續上升,現在它已經成為了第一名。但排在前四名的語言 Python、C、Java 和 C++都擁有廣大的使用者群體,並且他們的使用者總量也十分相近。實際上,Diakopoulos 在對公司招聘所要求的基本語言分析中,C 語言的需求甚

大資料開發語言Python

前段時間,ThoughtWorks在深圳舉辦一次社群活動上,有一個演講主題叫做“Fullstack JavaScript”,是關於用JavaScript進行前端、伺服器端,甚至資料庫(MongoDB)開發,一個Web應用開發人員,只需要學會一門語言,就可以實現整個應用。

Node中間層實踐(一)——基於NodeJS的開發

為什麼選擇node中間層 現用的開發模式適用場景 以後端的為主的MVC模式 在實現一些同步展現的業務效率很高 但是遇到非同步同步結合的頁面 在與後端溝通就會顯得相對麻煩一些 ajax為主的spa型開發模式 比較適合開發app型別的場景 但是隻是適合做app

JavaScript、Node.js開發

前言 Web前端開發現在人才缺口大,薪資高,而且語法簡單是最容易進入IT行業的一個程式設計方向。使用也非常廣泛PC頁面、移動端頁面、小程式、公眾號等都用得到前端技術開發,在這裡分享一套非常完善的課程學習體系。 一、煉體篇(企業級網站架構與部署——Web前端基礎篇) 1.

Python 開發python三元表達、遞歸、匿名函數

函數的參數 def 開發 col foo div 規則 尾遞歸 python 三元表達式 基本的語法格式 為真時的結果 if 判定條件 else 為假時的結果 比較兩個數中的大值 並返回 #一般函數的寫法def max2(x,y): if x > y

python開發-Day12 三元表達、函數遞歸、匿名函數、內置函數

lai imp padding imu eof inpu 對比 bject func 一、 三元表達式 一 、三元表達式   僅應用於:     1、條件成立返回,一個值     2、條件不成立返回 ,一個值 def max2(x,y): #普通函數定義

20天Python開發入門到精通視頻

上市公司 編程語言 雲計算 python 老男孩 20天Python全棧開發入門到精通視頻免費報名鏈接:https://ke.qq.com/course/206831本次課程知識點:帶你了解python目前帶給我們的機遇和挑戰。 全面系統的學習python編程語言,從容應對企業中各式各樣的

Python開發之4、內置函數、文件操作和遞歸

開發 hang mon alien yun alpha err fdm ax1 %E5%AD%97%E8%8A%82%E5%BA%8F%E8%BD%AC%E6%8D%A2%E4%B8%8E%E7%BB%93%E6%9E%84%E4%BD%93%E4%BD%8D%E5%9F%

python 開發筆記 2

定義 dir 操作 lte 映射 密碼錯誤 fun 改密 dom 函數 函數式:將某功能代碼封裝到函數中,日後便無需重復編寫,僅調用函數即可 面向對象:對函數進行分類和封裝,讓開發“更快更好更強...” 函數式編程最重要的是增強代碼的重用性和可讀性 def xx():

python開發從入門到放棄之函數基礎

*args 才會 沒有 pri 關鍵字 args none 結果 類型 1、為什麽要用函數#1.避免代碼重用#2.提高代碼的可讀性 2、函數的定義def 函數名(參數1,參數2): ‘‘‘函數註釋‘‘‘ print("函數體") return "返回值"

python開發從入門到放棄之裝飾器函數

def return app 不改變 art sdl 兩個 time() 必須 1、函數名可以當作函數的參數 1 import time 2 def timmer(func): 3 #函數名可以當做函數的參數 4 def inner(): 5

python開發從入門到放棄之常用模塊和正則

imp 管理 gin idt 由於 說明 多次 mar style 什麽是模塊? 常見的場景:一個模塊就是一個包含了python定義和聲明的文件,文件名就是模塊名字加上.py的後綴。 但其實import加載的模塊分為四個通用類別:    1 使用python編寫

Python開發:Javascript

component 類型 pad tin ons earch lex floor n) JavaScript是一門編程語言,瀏覽器內置了JavaScript語言的解釋器,所以在瀏覽器上按照JavaScript語言的規則編寫相應代碼之,瀏覽器可以解釋並做出相應的處理。 一、

<python開發基礎>學習過程筆記【17d】生成器

我們 ack cnblogs 生成式 而不是 簡寫 為什麽 ati lin 1.列表生成式 >>> [i**2 for i in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 這個過程是從range(

<python開發基礎>學習過程筆記【6d】列表,字典,元組,知識點復習

ima 技術分享 筆記 python nbsp .com 復習 png cnblogs 、 <python全棧開發基礎>學習過程筆記【6d】列表,字典,元組,知識點復習

python開發從入門到放棄之socket網絡編程基礎

windows lis timeout 標準 網站 入門 make 取數 exce 網絡編程基礎 一 客戶端/服務器架構 1.硬件C/S架構(打印機) 2.軟件C/S架構   互聯網中處處是C/S架構   如黃色網站是服務端,你的瀏覽器是客戶端(B/S架構也是C/S架構的一

python開發從入門到放棄之socket並發編程之IO模型

map 超時 sting mon recv style 好的 exceptio 得到 一 IO模型介紹 同步(synchronous) IO和異步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分別是什麽,到底有什

Python開發-有趣的小程序

() import 有趣 標準輸出 程序 有趣的 計算 標準 sleep 進度條的打印   import sys,time  for i in range(20):     sys.stdout.write(‘$‘) #stdout是標準輸出的意思,在一

Python開發-Day3-Python基礎3

找到 現在 simon 變量作用域 全局變量 index 全部 dataset 減少 本節內容   1. 函數基本語法及特性   2. 參數與局部變量   3.遞歸   4.函數式編程介紹   5.高階函數 1.函數基本語法及特性  三種編程範式:    1、面向過程:

python 開發筆記 4

sta 基於 資源 網絡編程 多核 final tex rop path 反射 1.通過字符串的形式導入模塊 2.通過字符串的形式,去模塊中尋找指定函數並執行 ‘‘‘ def f1(): return ‘F1‘ def f2(): return ‘F2‘