1. 程式人生 > >從零開始學Python(一):Python語言的背景,發展,以及前景.

從零開始學Python(一):Python語言的背景,發展,以及前景.

本章是本系列的第一章,也是博主第一次寫python的相關的文章,這個系列打算出20-30篇,儘量會保持周更3篇左右的幅度,總結一下自己python的學習之路,也希望能夠幫助到想學卻又不知道如何開始學習python的人。由於本人知識有限,如果博文中有相關的紕漏或者錯誤,忘海涵!

本文的目錄結構:
*
{:toc}

一.Python語言簡介

新接觸的一門語言的時候,我們應該對我們將要學習的語言有個大致的瞭解,也許你常常聽過python,總是聽別人說有多牛多牛逼,但可能你心裡也沒有個清晰的認識,為啥python牛逼,她又是為何能讓全球的開發者為之瘋狂呢?不要著急,聽博主慢慢道來.

1.何為Python?

我們引用官網一句話:Python是一個高層次的結合瞭解釋性,編譯性,互動性和麵向物件的指令碼語言.她的設計具有很強的可讀性,她比其他語言更有特色的語法結構!(何為解釋性,編譯性,下面博主會詳解)

2.python的背景以及歷史

Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷蘭國家數學和電腦科學研究所設計出來的。

Python 本身也是由諸多其他語言發展而來的,這包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的指令碼語言等等。

像 Perl 語言一樣,Python 原始碼同樣遵循 GPL(GNU General Public License)協議。

現在 Python 是由一個核心開發團隊在維護,Guido van Rossum 仍然佔據著至關重要的作用,指導其進展。

3.Python語言的特點

  • 易於學習:Python有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。
  • 易於閱讀:Python程式碼定義的更清晰。
  • 易於維護:Python的成功在於它的原始碼是相當容易維護的。
  • 一個廣泛的標準庫:Python的最大的優勢之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh相容很好
  • 互動模式:互動模式的支援,您可以從終端輸入執行程式碼並獲得結果的語言,互動的測試和除錯程式碼片斷
  • 可移植:基於其開放原始碼的特性,Python已經被移植(也就是使其工作)到許多平臺。
  • 可擴充套件:如果你需要一段執行很快的關鍵程式碼,或者是想要編寫一些不願開放的演算法,你可以使用C或C++完成那部分程式,然後從你的Python程式中呼叫。
  • 資料庫:Python提供所有主要的商業資料庫的介面。
  • GUI程式設計:Python支援GUI可以建立和移植到許多系統呼叫。
  • 可嵌入: 你可以將Python嵌入到C/C++程式,讓你的程式的使用者獲得”指令碼化”的能力。

3.Python傳播速度


上圖是截止2017年8月,國內網際網路IT行業程式語言排行,可以看到python以及榮登榜單第五(現在好像第四了),可想而知Python是有多麼的受大家歡迎.

4.Python的運用領域

創始人guido希望Python在每個領域都能火起來,而Python也不負眾望,已經在雲端計算,雲服務,人工智慧,web,科學計算,大資料等領域站穩了腳跟.在未來十年的時間裡可以Python會越來越火,為了跟上時代的潮流,技多不壓身,學習和了解下總是沒有錯的!

Python程式的執行原理

學習Python前,我們先來了解下Python程式的執行原理.這樣有助於我們後期的學習中瞭解這個程式是怎麼執行的,以及對相關的原理有個大致的認識.
Python程式執行一般包含以下四個步驟:

  • 詞法分析
  • 句法分析
  • 編譯
  • 解釋
     

詞法分析:詞法分析的工作就是將輸入的原始程式碼分解成一些符號,例如識別符號,關鍵字,操作符等,這個過程是編譯器自動執行,一般不會產生任何錯誤.

句法分析:詞法分析之後,程式會接收到分析之後的符號,並且用一種結構來展現他們之間的關係(使用的是抽象語法樹)

編譯:在句法分析後,Python會接收這顆抽象語法樹,並將它轉化為一個或多個程式碼物件,通過編譯器編譯出==位元組碼(也就是中間碼)==.(除了複用性較高的位元組碼.其他位元組碼都會在程式執行完後被刪除)

解釋:進過編譯得到位元組碼之後,需要讓我們程式真正的在平臺上跑起來,還需要對位元組碼轉為機器能夠識別的==機器碼==,這個過程叫做解釋.

Tips:機器碼和位元組碼的區別

1.機器碼是能夠在處理器上直接執行的執行碼,每條執行控制cpu的工作.簡而言之,機器碼執行速度要比位元組碼快很多.

2.位元組碼是需要在虛擬機器這個抽象的計算機中執行,每條執行有虛擬機器去處理,最後再由虛擬機器轉換成機器碼和計算機本身去互動,也正是有了中間這個過程,導致位元組碼執行起來沒有機器碼那麼迅速.

單從語言的本身的執行效率來講,編譯型的語言一般都要比解釋型的語言執行效率更低.舉個簡單的例子:
java

Q&A

對於Python語言的介紹就先到此結束了,理論再多,也需要實踐.下一篇我們開始學習下Python的環境安裝以及執行我們的第一個HelloWord程式!

相關推薦

開始Python():Python語言背景,發展,以及前景.

本章是本系列的第一章,也是博主第一次寫python的相關的文章,這個系列打算出20-30篇,儘量會保持周更3篇左右的幅度,總結一下自己python的學習之路,也希望能夠幫助到想學卻又不知道如何開始學習python的人。由於本人知識有限,如果博文中有相關的紕漏或者

開始Python()-Python基礎

從開始學程式設計就一直有學人工智慧的想法,這段時間準備開始學一些Python的基礎,一點點記錄下來 Python下載 下載地址:https://www.python.org/downloads/

開始python[,環境搭建以及簡單的demo]

python下載地址:https://www.python.org/downloads/ 我這裡用的是2.7.8   python有一點不好的地方是並非同java一樣是向下相容的.若有2.7.8的python程式碼並不一定可以在2.3+的python上執行.請大家注意 同

Python新書推薦《開始Python--資料分析與挖掘》

經過10多個月的努力,《從零開始學Python--資料分析與挖掘》的新書上市啦,在此感謝清華大學出版社對本書提出的寶貴建議,也感謝廣大網友及粉絲對我的期待。本書一共包含16章的內容,涉及四大模組,分別是Python基礎儲備、Python資料運算與整理、Python資料視覺化和Python資料探勘理論

開始Python【2】--數值計算及正則表示式

往期回顧: 從零開始學Python【1】--資料型別及結構 我們接著上一期的Python,繼續跟大家分享有關Python中常用的數值計算和正則表示式。 運算子 1)數值運算 +、-、*、/ % (求餘數) // (注意Python中的整除是

開始Python【1】--資料型別及結構

一直想靜下心來、花點時間學習Python3這門火爆的高階語言,但總是事與願違,故只能擠點時間,做到每天進步一點點。從今天開始我把積累的點滴知識與大家做個分享,也歡迎感興趣的朋友指教與提議。 首先從Python的基礎資料型別和資料結構說起,資料型別主要包含三種,分別是數值型、字元型和日

開始視覺化資料分析師就業課程(Excel、 MySQL、Power BI、Tableau、python、R)

課程目錄: 第1章: 資料分析師先導篇 任務1: 資料分析的概念 任務2: 資料分析的作用 任務3: 資料分析六部曲 任務4: 資料分析六部曲2 任務5: 資料分析的三大誤區 任務6: 資料分析師的發展和職業要求 任務7: 資料分析師的基本素質 第2章: Ex

開始Python學習筆記---之--pandas序列部分

序列序列(Series)可以理解成是Python中的列表、元組的高階版本。為什麼說是高階版本呢?因為序列一維陣列類似,具有更好的廣播效應,既可以與一個標量進行運算,又可以進行元素級函式的計算。如下例子所示: #列表無法與一個標量進行運算(雖然*不報錯,但是它表示的是重複)

開始Python數據分析

技術 pan opened click 工作 hide jupyter color clas 第1章 Python環境搭建與使用 1.1 Anaconda的安裝和使用 1.1.1 Anaconda的安裝 1.1.2 Anaconda的使用 1、包管理 2、環境管理

開始Python(八):Python多執行緒和佇列

很久沒有更新博文啦,在家過春節已經變懶了-_-,不過答應大家更完這個python的入門系列,偶還是會繼續努力的!另外祝願大家新年快樂,事事順心! 執行緒的概念 我們學習的很多程式語言,比如java,oc等,都會有執行緒這個概念.執行緒的用途非常的廣泛,給

開始Python(四):變數與基本資料型別

上一章我們簡單的瞭解了一下python的程式碼縮排,基礎的輸出語句,多行語句和單行多行註釋,今天我們來了解下python的變數與基本資料型別,讓我們在以後的程式設計中,對各種型別瞭如指掌! 變數的賦值 為了方便給下面各種資料型別做詳解,我們首先學習一下變

開始Python學習筆記---之--pandas資料框(1)

作為從事資料相關工作朋友,平時接觸的更多的可能是一張有板有眼的資料表格,在這裡我們就叫作資料框。在Python中可以通過pandas模組的DataFrame函式構造資料框。 1、資料框的構造 在Python中,可以藉助於列表、元組、字典進行手工構建資料框,我們用例子說明:

開始Python學習筆記---之--pandas資料框(3)

在pandas資料框(2)我們使用pandas模組實現觀測的篩選、變數的重新命名、資料型別的變換、排序、重複觀測的刪除、和資料集的抽樣,這期我們繼續介紹pandas模組的其他新知識點。包括頻數統計、缺失值處理、資料對映、資料彙總。 一、頻數統計 我們以被調查使用者的收入資料

學習《開始Python網絡爬蟲》PDF+源代碼+《精通Scrapy網絡爬蟲》PDF

網站 復雜 精通 nbsp 註釋 mage targe 快速實現 bsp 學習網絡爬蟲,基於python3處理數據,推薦學習《從零開始學Python網絡爬蟲》和《精通Scrapy網絡爬蟲》。 《從零開始學Python網絡爬蟲》是基於Python 3的圖書,代碼挺多,如果是

開始Xamarin.Forms() 概述

erl 系統 mod 重寫 fwe 依賴 模式 sil c# Xamarin 讀 “?z?m?rin”,是一個基於開源項目mono的可以使用C#開發的收費的跨平臺(iOS、Android、Windows Phone、Mac)解決方式。

開始Linux系統(

系統啟動 linux 自定義 管理 如果 level 技術 int 沒有 Linux系統:分時多用戶多任務的操作系統; Linux系統引導流程: inittab配置文件中: 定義了linux系統的運行的7個級別:從0~6 0、6:分別代表關機和重啟,不建議設置為默認的

開始 Web 之 DOM()DOM的概念,對標簽操作

關註 1.5 pan 什麽 tin p標簽 nod text == 大家好,這裏是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關註。在這裏我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,

開始 Web 之 CSS3()CSS3概述,選擇器

https 兼容問題 3.1 線性 web前端 不同 錨點 splay lock 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔

開始 Web 之 ES6(三)ES6基礎語法

arr 方法 foreach reac 公眾 存在 lock 數組名 回調函數 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博

開始Socket:()服務端和客戶端建立

上篇我提到Socket是TCP/IP的抽象介面。所以我們直接使用就好,沒必要知其甚解。 1.開啟VS 新建專案 名稱,位置隨意 這裡名稱是Server 框架選.NET 4.5(在這篇部落格裡也無所謂) 注意引用 using System.Net; using