mysql定義變量查詢,Python是學什么的?
為什么這么多人在學Python呢?很多小白都聽說Python很火,簡單易學,學起來很容易,學習周期短,可是為啥要學Python呢?,下面談談我對Python的感悟。
在PC時代大量的嵌入式的設備,底層的代碼,底層原理,以及底層邏輯運用,以及桌面的應用都是用C、C++實現的,毋庸置疑它們是最接近底層,對底層有著強大的解釋說服力,也是最早的、最快的。隨著2000年電商的大規模的興起,多數人融入到這個大家庭中,逐漸地從PC時代過度到互聯網時代,Java開始王者歸來,再加上2010移動互聯網的爆發Android開始風靡起來,Java更是如日中天,走向了輝煌。那我們現在為什么要學習Python呢?Python到底是用來干什么的?1、Web開發Python的誕生歷史比Web還要早,由于Python是一種解釋型的腳本語言,開發效率高,所以非常適合用來做Web開發,大大提高了做web開發人員的效率。Python有上百種Web開發框架,有很多成熟的模板技術,選擇Python開發Web應用,不但開發效率高,而且運行速度快,加快了時代的發展。常用的web開發框架有:Django、Flask、Tornado 等。許多知名的互聯網企業或者小型公司將Python作為主要開發語言:豆瓣、知乎、果殼網、Google、NASA、YouTube、Facebook……由于后臺服務器的通用性,除了狹義的網站之外,很多App和游戲的服務器端也同樣用 Python實現,來運行,完成相應的工作。一個Web應用的本質就是:瀏覽器發送一個HTTP請求;服務器收到請求,生成一個HTML文檔;服務器把HTML文檔作為HTTP響應的Body發送給瀏覽器;瀏覽器收到HTTP響應,從HTTP Body取出HTML文檔并顯示。所以,最簡單的Web應用就是先把HTML用文件保存好,用一個現成的HTTP服務器軟件,接收用戶請求,從文件中讀取HTML,返回。Apache、Nginx、Lighttpd等這些常見的靜態服務器就是干這件事情的,完成這些事情的。如果要動態生成HTML,就需要把上述步驟自己來實現。不過,接受HTTP請求、解析HTTP請求、發送HTTP響應都是苦力活,如果我們自己來寫這些底層代碼,還沒開始寫動態HTML呢,就得花個把月去讀HTTP規范。正確的做法是底層代碼由專門的服務器軟件實現,我們用Python專注于生成HTML文檔。因為我們不希望接觸到TCP連接、HTTP原始請求和響應格式,所以,需要一個統一的接口,讓我們專心用Python編寫Web業務。這個接口就是WSGI:Web Server Gateway Interface。(Web服務器網關接口)wsgi就是一種規范,它定義了使用web應用程序與Python編寫的web服務器程序之間的接口格式。無論多么復雜的Web應用程序,入口都是一個WSGI處理函數。HTTP請求的所有輸入信息都可以通過environ獲得,HTTP響應的輸出都可以通過start_response()加上函數返回值作為Body。WSGI接口定義非常簡單,它只要求Web開發者實現一個函數,就可以響應HTTP請求。我們來看一個最簡單的Web版本的“Hello,web!”:上面的application()函數就是符合WSGI標準的一個HTTP處理函數,它接收兩個參數:environ:一個包含所有HTTP請求信息的dict對象;start_response:一個發送HTTP響應的函數。在application()函數中,調用:就發送了HTTP響應的Header,注意Header只能發送一次,也就是只能調用一次start_response()函數。start_response()函數接收兩個參數,一個是HTTP響應碼,一個是一組list表示的HTTP Header,每個Header用一個包含兩個str的tuple表示。通常情況下,都應該把Content-Type頭發送給瀏覽器。其他很多常用的HTTP Header也應該發送。然后,函數的返回值'<h1>Hello, web!</h1>'將作為HTTP響應的Body發送給瀏覽器。有了WSGI,我們關心的就是如何從environ這個dict對象拿到HTTP請求信息,然后構造HTML,通過start_response()發送Header,最后返回Body。了解了WSGI框架,我們發現:其實一個Web App,就是寫一個WSGI的處理函數,針對每個HTTP請求進行響應。但是如何處理HTTP請求不是問題,問題是如何處理100個不同的URL。由于用Python開發一個Web框架十分容易,所以Python有上百個開源的Web框架。各種Web框架的優缺點自己去了解一下就可以了,直接選擇一個比較流行的Web框架——Flask來使用。除了Flask,常見的Python Web框架還有:Django:全能型Web框架;web.py:一個小巧的Web框架;Bottle:和Flask類似的Web框架;Tornado:Facebook的開源異步Web框架。做一個游戲2、網絡爬蟲許多人對編程的熱情始于好奇,終于停滯,小有成就就止步于此。距離真槍實干做開發有技術差距,也無人指點提帶,也不知當下水平能干嘛?就在這樣的疑惑循環中,編程技能止步不前,而爬蟲是最好的進階方向之一。網絡爬蟲是Python比較常用的一個場景,國際上,google在早期大量地使用Python語言作為網絡爬蟲的基礎,帶動了整個Python語言的應用發展。以前國內很多人用采集器搜刮網上的內容,現在用Python收集網上的信息比以前容易很多了,如:從各大網站爬取商品折扣信息,比較獲取最優選擇;對社交網絡上發言進行收集分類,生成情緒地圖,分析語言習慣;爬取網易云音樂某一類歌曲的所有評論,生成詞云;按條件篩選獲得豆瓣的電影書籍信息并生成表格……應用實在太多,幾乎每個人學習爬蟲之后都能夠通過爬蟲去做一些好玩有趣有用的事。例子:爬取網絡上的歌曲3、人工智能人工智能是現在非常火的一個方向,AI熱潮讓Python語言的未來充滿了無限的潛力。現在釋放出來的幾個非常有影響力的AI框架,大多是Python的實現,為什么呢?因為Python有很多庫很方便做人工智能,比如numpy, scipy做數值計算的,sklearn做機器學習的,pybrain做神經網絡的,matplotlib將數據可視化的。在人工智能大范疇領域內的數據挖掘、機器學習、神經網絡、深度學習等方面都是主流的編程語言,得到廣泛的支持和應用。人工智能的核心算法大部分還是依賴于C/C++的,因為是計算密集型,需要非常精細的優化,還需要GPU、專用硬件之類的接口,這些都只有C/C++能做到,所有c/c++和P相結合就可以實現人工智能。4、Python的其他應用舉例系統編程:提供API,能方便進行系統維護和管理,Linux下標志性語言之一,是很多系統管理員理想的編程工具。圖形處理:有PIL、Tkinter等圖形庫支持,能方便進行圖形處理。數學處理:NumPy擴展提供大量與許多標準數學庫的接口。文本處理:Python提供的re模塊能支持正則表達式,還提供SGML,XML分析模塊,許多程序員利用Python進行XML程序的開發。數據庫編程:程序員可通過遵循PythonDB-API(數據庫應用程序編程接口)規范的模塊與MicrosoftSQLServer,Oracle,Sybase,DB2,MySQL、SQLite等數據庫通信。Python自帶有一個Gadfly模塊,提供了一個完整的SQL環境。網絡編程:提供豐富的模塊支持sockets編程,能方便快速地開發分布式應用程序。很多大規模軟件開發計劃例如Zope,Mnet及BitTorrent.Google都在廣泛地使用它。Web編程:應用的開發語言,支持最新的XML技術。多媒體應用:Python的PyOpenGL模塊封裝了“OpenGL應用程序編程接口”,能進行二維和三維圖像處理。PyGame模塊可用于編寫游戲軟件。黑客編程: Python有一個hack的庫,內置了你熟悉的或不熟悉的函數,但是缺少成就感。以上內容分享自華為云社區《【云駐共創】你知道在未來Python主要的運用途徑和領域嗎?》,作者:楠羽。