上一小節里面,老袁給曉白講了python是什么,python的由來,發展歷程,崛起和python的特點。這一小節里面,老袁會告訴曉白人們都用python來做什么。
? ? ? ? ? “我剛剛說了,python的特點之一就是應用領域廣泛,那人們一般用python做什么呢?接下來我就給你講講python常見的應用領域?!崩显f完,繼續進行講解。
?
web 領域
python在web領域有著廣泛的應用,那首先我們簡單說一下什么是web, web 也就是大名鼎鼎的world wide web(萬維網)的簡稱,萬維網是基于http協議進行交互的應用網絡,說的更通俗一點就是我們用瀏覽器訪問的網站,或者我們移動端上面的微信公眾號,小程序,甚至一些基于H5技術制作的手機APP都可以稱為Web應用。
Web 應用主要可以分成兩個部分,一個就是我們經常聽說的Web前端,Web前端主要就是采用的H5,JS,CSS,以及各種各樣的框架開發出來的PC端或者移動端的前端頁面(也就是我們訪問一個網站能夠直接看到的部分)。還有一個部分就是Web后臺,Web后臺主要為前端提供展示和交互的數據,實現數據的存儲,前端頁面的數據渲染,后臺的處理邏輯以及和前端的交互。
Python 語言以及基于Python語言的一些成熟的web開發框架為后臺開發提供了一條簡單便捷的道路,通過使用像Django,Flask等后端開發框架,開發者可以快速有效的構建自己的后臺系統。像國內大名鼎鼎的豆瓣網以及國外的FaceBook都是采用的python語言來進行Web后臺的開發。而一些使用python開發的類似于博客系統,購物網站,教學平臺的項目更是數不勝數。而現在基于移動端的app,微信公眾號和小程序有很多也是基于python開發的。
相對而言,國內的公司對python的web開發技能需求量是比較大的。除了一些專門的web后臺開發工程師需要web開發技能,像爬蟲,自動化運維,自動化測試等崗位也需要不同程度的掌握一定的web開發技能,從而可以在服務器構建爬蟲,自動化平臺等。
?
爬蟲領域
這里的爬蟲不是做一個電子爬蟲這樣的小寵物,也不是做一個爬蟲吃豆這樣的游戲。我們這里說的爬蟲實際上是網絡爬蟲,而它最主要的功能是從互聯網上獲取你想要的數據,并且是可以在不同的頁面間進行跳轉,爬取相關數據,就像是一只蟲子在互聯網這個大網上面的某個局部網絡不斷的獲取數據,我們把這樣的一類程序稱為爬蟲。通過爬蟲程序可以可以批量的獲取我們想要的文章,圖片,視頻或者各類數據。通過爬蟲抓取到大量的數據后,我們可以進一步對這些數據進行分析。
python語言本身天然就支持爬蟲程序的編寫,因為其內置了像urllib這樣的網絡操作庫,可以方便的從網絡上獲取數據。并且python也支持正則表達式,可以快速的抽取匹配有特定特征的數據。當然如果你覺得正則太難,你完全可以使用像Beatiful Soup或者lxml里面的xpath這樣的第三方模塊來直接從頁面的Dom樹中抓取想要的信息,更加簡單和快捷。
當然,python的愛好者們也沒有忘記給流行的爬蟲開發一個現成的框架,這個就是大名鼎鼎的Scrapy框架。通過Scrapy框架,我們可以快速的開發爬蟲程序,把側重點放到具體數據獲取的分析上,至于爬取后數據的存儲,爬蟲管道這些事情,交給框架去做就行了。
最后,通過python也可以支持分布式爬蟲,多代理服務器爬蟲,反反爬技術等??梢哉f,爬蟲程序中你能想到的或者想不到的,python都可以支持。正是因為python對爬蟲的支持,大量的商業爬蟲(金融行業較多)程序的編寫都采用了python開發。下圖展示了python爬蟲開發需要掌握的技能和工具。
?
桌面應用軟件
應用軟件主要是指我們pc電腦上執行的應用程序,從形態上來看,這樣的應用程序分為不帶界面的和帶界面兩類。而這兩類應用程序都可以使用python進行開發。我們學習中平時的一些小練習都是不帶界面的應用程序,這類程序將執行的中間過程或者結果輸出到cmd中或者文件中,以便用戶進行查看。而python本身自帶tkinter圖形界面開發庫以及第三方的pyqt圖形開發庫為python的圖形界面開發提供了強大的支持,讓開發者可以利用python開發出各種界面精美,交互性強的gui程序。
從功能上來看,PC端的應用程序主要分為如下幾種類型,以下分別介紹Python在如下幾種類型應用開發中的使用:
多媒體應用
python本身就提供了多媒體操作的庫,可以直接從python庫來操作圖片,視頻,音頻。如果你覺得python自帶的多媒體庫不夠用,那還可以使用強大的多媒體框架pyglet,pyglet支持windows,mac os,linux等多種操作系統,可以操作幾乎所有格式的圖片,可以播放所有的音頻和視頻,關鍵它還是免費的。有這么強大的庫支持,用python編寫多媒體應用還是比較容易上手的。
網絡應用
因為python天然支持socket接口的編程,同時提供了低級socket接口和高級的socket服務器編程接口,可以方便的做為客戶端和服務器端訪問網絡。python也提供了常用網絡操作的庫函數,如urllib提供了http訪問的庫, ftplib 提供了ftp操作的庫, smtplib , poplib 和 imaplib 提供了發送郵件,接收郵件和獲取郵件的庫。正是如此多的網絡操作庫,讓我們可以方便的使用python實現常用的網絡應用編程。
游戲編程
使用python的pygame庫可以快速方便的開發出各類小型游戲。如果你想開發出3D游戲或者3D應用,可以使用python的openGL庫。像知 名游戲 《文明4 》 ,《戰地2》都是用python開發的。
python本身也支持多線程和多進程操作,可以方便的編寫出支持多線程和多進程的程序。
辦公自動化腳本
由于python可以直接對excel,word文檔等文件進行操作,所以可以使用python編寫一些自動化處理的腳本,可以直接操作excel對辦公數據進行統計和錄入,可以大大提高工作效率。
?
?
自動化運維應用
因為python本身就是一種腳本語言,所以可以編寫自動化運維中的腳本程序。除了編寫簡單的腳本,還有很多自動化運維的工具是用python開發的,如fabric,通過使用這些工具,能夠方便的自動登錄服務器進行各種操作,可以大大簡化運維程序的編寫,并提高運維的效率。
自動化測試應用
使用 Python selenium 自動化測試工具,可以快速的實現自動化測試應用的編寫,大大提高自動化測試的效率。
科學計算和數學分析
科學計算也被稱作計算科學(computational science)或科學計算法(scientific computation),其主要思路是開發數學模型,通過量化分析技術和計算機解決科學問題。python中的numpy和SciPy這樣的科學運算庫,可以方便快速的解決大多數場景下的數學問題,SymPy程序具有符號計算的功能,可以實現基本算術、代數、積分、離散數學、量子物理等學科的符號計算。matplotlib程序庫為Python/NumPy提供畫圖功能,可以畫出類似于線性圖、直方圖、散點圖以及3D圖,讓科學運算的結果更加直白易懂。
現在很多公司都在使用python來進行數學分析,比較典型的一個數學分析場景應用是股票量化分析,通過分析股票的歷史數據,來預測股票的未來漲跌情況。
我們可以結合python的web開發能力開發一個服務器后臺,在后臺上再構建一個爬蟲用來爬取數據,爬取到數據以后我們可以使用python的數學分析庫對數據進行量化分析,然后將數據以各種形式展示到前端頁面,最終全部用python構成一個完整的數據獲取分析展示系統。
AI 應用
AI涉及的領域非常的廣泛,包括語音識別和語音合成,圖像的識別和合成,輿情分析,語義分析,情感分析等非常多的領域。
那么 誰會成為 AI 和大數據時代的第一開發語言?這本已是一個不需要爭論的問題。如果說三年前, Matlab 、 Scala 、 R 、 Java 和 Python 還各有機會,局面尚且不清楚,那么三年之后,趨勢已經非常明確了,特別是Facebook 開源了 PyTorch 之后, Python 作為 AI 時代頭牌語言的位置基本確立,未來的懸念僅僅是誰能坐穩第二把交椅。
python ai 應用里面最火的可能算是tensorflow了,它是谷歌基于DistBelief進 行研發的第二代人工智能學習系統 ,是大名鼎鼎google 阿法狗技術團隊開源出來的項目。
硬件編程
著名的開源硬件樹莓派支持python語言,你可以用python語言控制樹莓派的硬件接口,開發出各種有趣的智能硬件應用。比如,在國外有人用樹莓派結合一個攝像頭通過python編程結合人工智能的人體識別來監控誰偷了他冰箱里的啤酒?,F在非常流行的stm32單片機也開始支持python語言了。
?
“怎么樣,是不是大開眼界?python的應用領域夠廣泛吧。而且隨著python語言和時代的發展,更多的領域也會用python來解決問題?!崩显f完,問曉白。
?
“真的是大開眼界了,python真是不愧有著“萬能”語言的稱號。聽了您講的內容,我覺得學習,工作和生活中都有很多地方可以用到python。不過python有這么多的應用領域,那在實際的公司里面,都有哪些和python相關的工作崗位呢?”曉白問出了一個自己非常關心的問題。
?
“正好下一個部分我就打算給你講講國內python崗位的現狀。和python有關的工作崗位以及具體有哪些需求。”老袁說完,就準備開始講下一個部分的內容了。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
