第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

首頁 慕課教程 Python 入門語法教程 Python 入門語法教程 01 Python 語言簡介及其應(yīng)用領(lǐng)域

Python 簡介及應(yīng)用領(lǐng)域

圖片描述

圖片來源于官網(wǎng)

1. Python 是一種易學(xué)易用、功能強大的高級程序設(shè)計語言

1.1 Python 是什么

Python 是一種高級程序設(shè)計語言,用接近人類語言的方式描述計算的過程。例如,計算" 1 加 2"的結(jié)果并將結(jié)果打印輸出,使用 Python 完成這項功能,編寫的 Python 程序內(nèi)容如下:

print(1 + 2)

這個 Python 程序首先計算 1 + 2,然后使用 print 的功能將 1 + 2 的結(jié)果輸出到屏幕,輸出結(jié)果為:

3

從這個程序可以直觀的感受到 Python 的簡單易學(xué),即使沒有編程基礎(chǔ),也能看懂和理解這段程序。

1.2 Python 的特色和優(yōu)點

  • 入門簡單,對初學(xué)者友好

在介紹 Python 語言時,通常會提到 Python 是一門易學(xué)的編程語言,易學(xué)是 Python 最鮮明的特色。相對于 C、C++、Java 等編程語言,Python 的易學(xué)體現(xiàn)在它的學(xué)習(xí)曲線非常的平緩,如果學(xué)習(xí)曲線如果太陡峭,顯然不適合一般人去學(xué)習(xí)掌握,大部分人沒入門就放棄了。

今年 11 月15 日,年過半百的 SOHO 中國董事長潘石屹在微博上宣布,正式開始學(xué)習(xí)Python,占據(jù)了熱搜榜,表明了 Python 語言的簡單易學(xué)已經(jīng)深入人心。

  • 高級語言,不用考慮底層硬件細(xì)節(jié)

程序設(shè)計語言被分類為高級語言和低級語言:使用低級語言編寫程序時,程序員需要考慮底層硬件細(xì)節(jié),例如:手工的分配和釋放內(nèi)存,程序編寫時繁瑣易錯;而使用高級語言編寫程序時,高級語言會自動的處理底層硬件細(xì)節(jié),例如:自動的釋放不再使用的內(nèi)存,程序員不用考慮底層硬件細(xì)節(jié),專注于解決問題本身。

Python 是一種典型的高級語言,向程序員屏蔽了底層硬件細(xì)節(jié)。例如,Python 程序既可以在 x86 處理器上運行,也可以在 arm 處理器上運行,程序員不需要了解 x86 處理器和 arm 處理器的指令,就可以完成計算"1 加 2"這樣的任務(wù)。

  • 語法簡潔直觀

Python 語法接近自然語言,提供了很多簡潔、直觀和易于理解的表達方式,非常適用來描述求解問題的邏輯。實現(xiàn)相同程序功能時,Python 語言的代碼行數(shù)僅相當(dāng)于其他語言的 1/5 至 1/10。更少的代碼行數(shù)、更簡潔的表達方式可減少程序錯誤以及縮短開發(fā)周期。

  • 強大的標(biāo)準(zhǔn)庫和第三方庫

Python 語言可以將復(fù)雜的功能封裝為模塊(又稱為庫),將功能實現(xiàn)的細(xì)節(jié)隱藏起來,使用該模塊(庫)的程序員不需要了解實現(xiàn)的細(xì)節(jié)。通過調(diào)用模塊封裝好的功能,可以用僅僅幾行 Python 代碼實現(xiàn)某項復(fù)雜的功能,例如可以用一行代碼就實現(xiàn)一個 Web 服務(wù)器。

在 Python 的應(yīng)用領(lǐng)域中,如:web 開發(fā)、人工智能、網(wǎng)絡(luò)爬蟲、數(shù)據(jù)分析等領(lǐng)域,已經(jīng)存在了大量的模塊,程序使用這些模塊就可以輕松開發(fā)出應(yīng)用程序。

Python 的標(biāo)準(zhǔn)庫是隨著 Pyhon 安裝的時候默認(rèn)自帶的庫,提供了有文本處理、系統(tǒng)管理、網(wǎng)絡(luò)處理等功能。Python 的第三方庫,是由各家廠商和 Python 愛好者開發(fā)的庫,第三方庫需要下載后安裝到 Python 的安裝目錄下。強大的標(biāo)準(zhǔn)庫和第三方庫,讓 Python 程序員能夠輕松實現(xiàn)各種復(fù)雜的功能。

1.3 Python 的缺點

和 C、C++ 等編程語言相比,Python 程序的運行性能很差,這是 Python 語言最主要的缺點。例如,編寫一個以數(shù)學(xué)計算為主的程序,完成相同功能的 Python 程序的運行性能只有 C 程序的千分之一左右。

在實際的應(yīng)用場景中,Python 的缺點并不會成為系統(tǒng)的瓶頸,原因如下:

  • 在應(yīng)用領(lǐng)域中,程序運行時大部分時間進行的是 IO 處理,少部分時間進行數(shù)學(xué)計算。

  • 在 Web 后端開發(fā)中,Python 程序接受來自網(wǎng)絡(luò)的請求,處理請求時讀寫數(shù)據(jù)庫,最后將處理結(jié)果通過網(wǎng)絡(luò)返回,大量的時間花費在網(wǎng)絡(luò) IO 和數(shù)據(jù)庫 IO 上,因此 Python 的數(shù)學(xué)運算性能對程序的整體影響不大。

  • 發(fā)揮 C 語言和 Python 語言兩者各自的優(yōu)勢,使用 C 語言完成對計算性能要求高的功能,使用 Python 語言封裝 C 語言實現(xiàn)的功能模塊。

Python 的 NumPy (Numerical Python) 庫,是一個針對矩陣運算的數(shù)學(xué)函數(shù)庫,該庫由 Python 語言和 C 語言混合開發(fā)而成:底層的數(shù)學(xué)運算功能由 C 語言實現(xiàn),面向用戶的接口使用 Python 語言實現(xiàn)。用戶使用 Python 語言調(diào)用底層的 C 語言模塊,從而兼顧了開發(fā)效率和運行效率。

2. Python 的歷史和現(xiàn)狀

2.1 Python 的歷史

Python 的創(chuàng)始人為荷蘭人 Guido van Rossum。1982年,Guido 從阿姆斯特丹大學(xué)(University of Amsterdam)獲得了數(shù)學(xué)和計算機碩士學(xué)位。

Python 的創(chuàng)始人 Guido van Rossum

在80年代,個人電腦的配置很低,比如早期的 Macintosh,只有 8MHz 的 CPU 主頻和 128KB 的 RAM。為了增進程序的運行效率,程序語言也迫使程序員像計算機一樣思考,以便能寫出充分利用計算機性能的程序。

Guido 使用 C 語言的過程中,感受到 C 語言的開發(fā)效率很低,需要耗費大量的時間編寫 C 程序。他的另一個選擇是 Shell。 Shell 是 UNIX 操作系統(tǒng)提供的腳本語言。UNIX 的管理員常常用 Shell 去寫一些簡單的腳本,以進行一些系統(tǒng)維護的工作,比如定期備份。Shell 可以像膠水一樣,將 UNIX 下的許多功能連接在一起。許多 C 語言下上百行的程序,在 Shell 下只用幾行就可以完成。

Shell 的本質(zhì)是調(diào)用命令來完成復(fù)雜的功能,它缺乏編程語言的若干重要特性。例如,Shell 缺乏復(fù)雜的數(shù)據(jù)結(jié)構(gòu):列表、字典、結(jié)構(gòu)體,因此不適用于實現(xiàn)復(fù)雜的功能。Guido 希望有一種語言,這種語言能夠像 C 語言那樣,具備完整的編程語言特性,又可以像 Shell 那樣,具有很高的開發(fā)效率。

1989 年圣誕節(jié)期間,在阿姆斯特丹,Guido 為了打發(fā)圣誕節(jié)的無趣,決心開發(fā)一個新的程序語言 Python。Guido 將 Python(大蟒蛇)作為該編程語言的名字,是取自英國 20 世紀(jì) 70 年代首播的電視喜劇《蒙提.派森的飛行馬戲團》(Monty Python’s Flying Circus),因此 Python 語言的 logo 是一條蟒蛇。

圖片描述

Python 語言的 logo

1991 年,第一個 Python 解釋器誕生,它是用 C 語言實現(xiàn)的,又被稱為 CPython。Python 從一開始就具有良好的可擴展性,可以用 C 語言編寫模塊,在 Python 程序中使用這些使用 C 語言開發(fā)的模塊。

1999 年,Guido 向 DARPA 提交了一條名為 “Computer Programming for Everybody” 的資金申請,并在后來說明了他對 Python 的目標(biāo):

  • 一門簡單直觀的語言并與主要競爭者一樣強大
  • 開源,以便任何人都可以為它做貢獻
  • 代碼像純英語那樣容易理解
  • 適用于短期開發(fā)的日常任務(wù)

這些想法中的基本都已經(jīng)成為現(xiàn)實,Python 已經(jīng)成為一門流行的編程語言。

2.2 Python 2 和 Python 3

Python 有兩個主要的版本: Python 2 與 Python 3。Python 3 相對于 Python 2 是一個重大的升級,Python 3 與 Python 2 兩者的語法不兼容。最近這幾年 Python 3 的使用率急劇上升,Python 2 將逐步退出舞臺。因此,學(xué)習(xí) Python 應(yīng)該選擇 Python 3

2.3 Python 的現(xiàn)狀

Python 自 1989 年誕生以來,經(jīng)歷了 30 年的發(fā)展,已經(jīng)成為流行的編程語言之一。TIOBE 編程語言排行榜根據(jù)互聯(lián)網(wǎng)上程序員、教程和第三方廠商的數(shù)量,并使用搜索引擎統(tǒng)計出編程語言的排名數(shù)據(jù),反映了某個編程語言的熱門程度。下圖為 2019 年 12 月份的 TIOBE 編程語言排行榜。TIOBE 編程語言排行榜表明 Python 語言的熱門程度已經(jīng)成為僅次于 Java 語言 和 C 語言。

圖片描述

2019 年 12 月的 TIOBE 編程語言的排行榜

2017 年 10 月,教育部考試中心發(fā)布《關(guān)于全國計算機等級考試體系調(diào)整的通知》,新增 Python 語言程序設(shè)計科目。2018 年 9 月,舉行了首考。Python 編程語言作為一種國家標(biāo)準(zhǔn)進入了中國的考試認(rèn)證體系,這是一個里程碑性質(zhì)的事件,意味著 Python 語言在國內(nèi)教育領(lǐng)域得到官方的正式認(rèn)同,在部分高校,Python 程序設(shè)計已經(jīng)成為一門必修課程。無論是計算機專業(yè)的院系還是非計算機專業(yè)的院系,開設(shè) Python 程序設(shè)計課程,已經(jīng)成為一種趨勢。

圖片描述

Python 已經(jīng)成為全國計算機等級考試二級科目

Python 在國內(nèi)工業(yè)界得到了廣泛的應(yīng)用和認(rèn)可,并且Python 的人才易于培養(yǎng)和招聘,國內(nèi)的互聯(lián)網(wǎng)的領(lǐng)頭企業(yè)提供了大量的和 Python 的工作崗位,下圖為騰訊發(fā)布的 Python 的工作崗位。

圖片描述

騰訊招聘的 Python 工作崗位

3. Python 的應(yīng)用領(lǐng)域

3.1 教學(xué)

Python 可以作為《程序設(shè)計語言》課程的教學(xué)語言,在教學(xué)領(lǐng)域得到了國際和國內(nèi)知名高高校認(rèn)可。以世界著名的麻省理工學(xué)院 (MIT)為例,《計算機科學(xué)及編程導(dǎo)論》在 MIT 的課程編號是 6.00.1,是 MIT 計算機科學(xué)及工程學(xué)院的經(jīng)典課程。之前,課程一直使用 Scheme 作為教學(xué)語言,不過由于 Python 簡單、易學(xué)等原因,近年來已經(jīng)改用 Python 作為教學(xué)語言了。

3.2 后端開發(fā)

在 Web 應(yīng)用中,用戶通過瀏覽器向服務(wù)器提交請求,服務(wù)器接收到請求后,對用戶的請求進行處理,再將結(jié)果返回給用戶。例如,使用 baidu 搜索引擎的過程如下:

  1. 用戶在 baidu 的搜索框中,輸入關(guān)鍵字 “手機”,瀏覽器將關(guān)鍵字 “手機” 發(fā)送到 baidu 的服務(wù)器。
  2. baidu 服務(wù)器收到查詢手機的請求,在數(shù)據(jù)庫查找和手機相關(guān)的網(wǎng)頁,按照與關(guān)鍵詞的相關(guān)性進行排序,再將排序結(jié)果發(fā)送給用戶。
  3. 瀏覽器收到服務(wù)器的查詢結(jié)果后,顯示與 “手機” 相關(guān)的網(wǎng)頁列表。

在以上的 3 個步驟中,與用戶交互的部分稱之為前端,在服務(wù)器處理的用戶請求的部分稱為后端。Python 提供了大量的模塊和框架可以用于后端開發(fā)。有很多知名的網(wǎng)站后端采用了 Python,例如,國內(nèi)的豆瓣就是一個應(yīng)用Python打造的非常成功的 Web 2.0 站點。

3.3 網(wǎng)絡(luò)爬蟲

網(wǎng)絡(luò)爬蟲,又被稱為網(wǎng)頁蜘蛛、網(wǎng)絡(luò)機器人,是一種按照一定的規(guī)則,自動地抓取網(wǎng)頁的程序。網(wǎng)絡(luò)爬蟲把網(wǎng)站的網(wǎng)頁下載到在本地,然后對下載的網(wǎng)頁進行關(guān)鍵字提取和數(shù)據(jù)分析。例如,baidu 搜索引擎使用到大量的網(wǎng)絡(luò)爬蟲,過程如下:

  1. 選擇站點作為爬蟲的目標(biāo)。
  2. 按照一定的策略,抓取該站點的網(wǎng)頁。
  3. 對下載的網(wǎng)頁進行關(guān)鍵字提取,建立索引。

Python 提供了大量的模塊和框架可以用于網(wǎng)絡(luò)爬蟲。例如,Python 提供了 requests 模塊根據(jù)指定的 url 抓取網(wǎng)頁。Python 同時提供了網(wǎng)絡(luò)爬蟲框架,例如 Scrapy,基于 Scapy 框架開發(fā)可以快速實現(xiàn)抓取 web 站點并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。

3.4 自動化運維

一個互聯(lián)網(wǎng)產(chǎn)品的生成一般經(jīng)歷的過程是:需求分析、研發(fā)部門開發(fā)、測試部門測試、運維部門部署發(fā)布以及長期的運行維護。運行維護的日程主要工作包括服務(wù)部署、服務(wù)監(jiān)控等。運維的工作繁瑣重復(fù),即使最謹(jǐn)慎的人,也會犯錯,尤其是面對著重復(fù)性工作。通過運維自動化工具來完成這樣的工作,錯誤率將大大降低。

Python 提供了各種自動化運維工具,能滿足絕大部分自動化運維的需求,包括:

  • 服務(wù)部署工具,當(dāng)應(yīng)用較為簡單時,只需要在少量服務(wù)器上部署少量的服務(wù),可以采用人工操作;當(dāng)應(yīng)用較復(fù)雜,需要在大量服務(wù)器上部署大量的服務(wù),采用服務(wù)部署工具可以一鍵實現(xiàn)在多臺服務(wù)器上自動化部署多項服務(wù)。
  • 服務(wù)監(jiān)控工具,對服務(wù)運行的狀態(tài)進行實時的監(jiān)控,隨時發(fā)現(xiàn)服務(wù)的運行異常和資源消耗情況;對服務(wù)出現(xiàn)的任何異常進行及時處理,盡可能避免問題的擴大化甚至中止服務(wù)。

3.5 自動化測試

自動化測試,顧名思義是指自動完成測試工作。通過工具模擬人工的操作過程,并驗證其結(jié)果,這樣的測試過程,就是是自動化測試。自動化測試節(jié)約了批人力成本,讓機器執(zhí)行大量的重復(fù)繁瑣的勞動。

Python 提供了眾多的自動化測試框架,可以實現(xiàn):

  • 單元測試:簡化單元測試的編寫。
  • 對 GUI 程序的自動化測試:Python 提供了模擬鼠標(biāo)的單擊和移動、鍵盤輸入等功能,模擬用戶操作 GUI 程序。
  • Web 自動化測試:Python 提供了模擬鼠標(biāo)的單擊和移動、鍵盤輸入等功能,模擬用戶操作瀏覽器。
  • 性能測試:使用代碼模擬大批量用戶,讓用戶并發(fā)請求,統(tǒng)計系統(tǒng)負(fù)載能力并生成報告。

3.6 數(shù)據(jù)分析

數(shù)據(jù)分析是指對數(shù)據(jù)搜集、整理、分析,并依據(jù)數(shù)據(jù)做出評估和預(yù)測?,F(xiàn)在是一個依靠數(shù)據(jù)競爭的時代,世界 500 強企業(yè)中,有 90% 以上都建立了數(shù)據(jù)分析部門。IBM、微軟、Google 等知名公司都積極投資數(shù)據(jù)業(yè)務(wù),建立數(shù)據(jù)部門,培養(yǎng)數(shù)據(jù)分析團隊。

Python 提供了和數(shù)據(jù)分析相關(guān)的模塊,典型的包括:

  • numpy,用于數(shù)學(xué)計算,如矩陣計算。
  • pandas,基于 numpy 數(shù)據(jù)分析工具,提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。
  • matplotlib:用于數(shù)據(jù)結(jié)果的可視化,將數(shù)據(jù)展現(xiàn)為散點圖、折線圖、直方圖、柱狀圖、餅圖等直觀的形式。

3.7 人工智能

人工智能(Artificial Intelligence),英文縮寫為 AI,它是研究、開發(fā)用于模擬、延伸和擴展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新的技術(shù)科學(xué)。人工智能的研究目標(biāo)是使計算機能夠勝任一些通常需要人類智能才能完成的復(fù)雜工作,例如:

  • 無人駕駛,通過車載傳感系統(tǒng)感知道路環(huán)境、自動規(guī)劃行車路線并控制車輛到達預(yù)定目標(biāo)。
  • 機器翻譯,將一種自然語言(例如英文)轉(zhuǎn)換為另一種自然語言(例如中文)。
  • 語音合成,將文字信息轉(zhuǎn)變?yōu)榭梢月牭枚?、流利的人造語音。

Python 提供了相關(guān)的庫用于快速開發(fā)人工智能的應(yīng)用,用戶使用 Python 的 AI 庫時,不需要深入了人工智能算法的細(xì)節(jié),極大的降低了人工智能開發(fā)的門檻。

TensorFlow 是一個機器學(xué)習(xí)框架,其前身是谷歌的神經(jīng)網(wǎng)絡(luò)算法庫,在計算機視覺、語音處理、推薦系統(tǒng)和自然語言處理等場景下有著豐富的應(yīng)用,是目前最熱門的機器學(xué)習(xí)框架。TensorFlow 提供了 Python、C/C++、Java 等多種編程語言的接口,但是基于 Python 編程接口的 TensorFlow 框架進行開發(fā)是最常見的選擇。

Python 語言的語法簡潔、表達能力強,能簡單快速聚焦問題本身而不是繁瑣底層細(xì)節(jié),成為了人工智能編程首選的編程語言。

4. 用 Python 開發(fā)的著名項目

4.1 阿里云 AI 開放平臺

阿里云 AI (https://ai.aliyun.com) 致力于構(gòu)建最全面、最開放、最前沿的AI開放平臺,從 2015 年開始,阿里云推出 AI 產(chǎn)品,包括語音識別,還有圖像識別、視覺識別等 130 多款細(xì)分產(chǎn)品,適用于 300 多個場景。

圖片描述

阿里云的 AI 解決方案

阿里云提供了提供最易用的 API、SDK 等開發(fā)組件,助力企業(yè)快速高效的實現(xiàn)產(chǎn)品升級。對每項產(chǎn)品提供多種編程接口,包括:Python、Java、C++、ios、Android、Restful 等。以語音合成為例,阿里云 AI 的語音合成 Python SDK 提供了如下接口:

  • SpeechSynthesizer,設(shè)置語音合成請求參數(shù),發(fā)送語音合成請求。
  • SpeechSynthesizerCallback,用于獲取語音合成結(jié)果。

4.2 豆瓣網(wǎng)

豆瓣網(wǎng) (douban) 是一個社區(qū)網(wǎng)站,提供關(guān)于書籍、電影、音樂等作品的信息,還提供書影音推薦、線下同城活動、小組話題交流等多種服務(wù)功能。豆瓣網(wǎng)已經(jīng)達擁有 300 萬注冊用戶,訪問量每天則超過兩千萬,是一個應(yīng)用 Python 開發(fā)的非常成功的 Web 2.0 站點。

豆瓣網(wǎng)的后端采用了 Quixote 框架,Quixote 框架是一個使用 Python 開發(fā)的輕量級 Web 框架。

4.3 IDLE

Idle 是一個使用 Python 開發(fā)的集成開發(fā)環(huán)境 IDE。Idle 由 Python 官方開發(fā)和維護,在 Windows 操作系統(tǒng)中,安裝 Python 時會同時安裝 Idle。IDLE 提供了一個功能強大的調(diào)試器,它還提供了一個多窗口文本編輯器,具有許多功能,包括多個撤消,Python 著色,智能縮進,調(diào)用提示,自動完成等。

圖片描述

Python 內(nèi)置的 IDE

4.4 Face Recognition

Face Recognition 是一個基于 Python 的人臉識別庫,它還提供了一個命令行工具,讓你通過命令行對任意文件夾中的圖像進行人臉識別操作。該庫使用頂尖的深度學(xué)習(xí)人臉識別技術(shù)構(gòu)建,在臉部檢測數(shù)據(jù)庫上的檢測準(zhǔn)確率高達 99.38%。Face Recognition 的最基本功能是從圖像中識別人臉,如下圖所示。

圖片描述

從圖像中識別人臉

5. 小結(jié)

經(jīng)過這個小節(jié)的學(xué)習(xí),我們應(yīng)該已經(jīng)大致知道了 Python 到底是個什么樣的編程語言?,F(xiàn)如今,Python 可以說在各個編程領(lǐng)域大放異彩,很多公司也已經(jīng)開始大量招聘 Python 人才,所以你是很有必要學(xué)習(xí) Python 的。后面的小節(jié)中我會一一把 Python 的各種魅力呈現(xiàn)給大家,快來一起愉快的學(xué)習(xí)吧。