1. 程式人生 > >Python基礎python簡介

Python基礎python簡介

Python介紹

Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/), 是一種面向物件的解釋型計算機程式設計語言,由荷蘭人Guido van Rossum1989年發明,1989年聖誕節期間,在阿姆斯特丹,Guido為了打發聖誕節的無趣,決心開發一個新的指令碼解釋程式,做為ABC 語言的一種繼承。之所以選中Python(大蟒蛇的意思)作為該程式語言的名字,是因為他是一個叫Monty Python的喜劇團體的愛好者。第一個公開發行版發行於1991年。

Python具有豐富和強大的庫。它常被暱稱為膠水語言,能夠把用其他語言製作的各種模組(尤其是C/C++)很輕鬆地聯結在一起。

目前Python主要應用領域:

雲端計算: 雲端計算最火的語言, 典型應用OpenStack

WEB開發: 眾多優秀的WEB框架,眾多大型網站均為Python開發,Youtube,   Dropbox, 豆瓣。。。, 典型WEB框架有Django

科學運算、人工智慧: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas

系統運維: 運維人員必備語言

金融:量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作為動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於c,c++,java,尤其擅長策略回測

圖形GUI: PyQT, WxPython,TkInter

編譯和解釋的區別是什麼?

編譯器是把源程式的每一條語句都編譯成機器語言,並儲存成二進位制檔案,這樣執行時計算機可以直接以機器語言來執行此程式,速度很快; 

直譯器則是只在執行程式時,才一條一條的解釋成機器語言給計算機來執行,所以執行速度是不如編譯後的程式執行的快的. 

這是因為計算機不能直接認識並執行我們寫的語句,它只能認識機器語言(是二進位制的形式)

動態語言和靜態語言

動態型別語言:動態型別語言是指在執行期間才去做資料型別檢查的語言,在用動態型別的語言程式設計時,永遠也不用給任何變數指定資料型別,該語言會在你第一次賦值給變數時,在內部將資料型別記錄下來

靜態型別語言:靜態型別語言與動態型別語言剛好相反,它的資料型別是在編譯其間檢查的,它的資料型別是在編譯其間檢查的,也就是說在寫程式時要宣告所有變數的資料型別。

強型別定義語言和弱型別定義語言

強型別定義語言:強制資料型別定義的語言。也就是說,一旦一個變數被指定了某個資料型別,如果不經過強制轉換,那麼它就永遠是這個資料型別了。

弱型別定義語言:資料型別可以被忽略的語言。它與強型別定義語言相反一個變數可以賦不同資料型別的值。

Python是動態語言,是強型別定義語言(型別安全的語言)

Python優缺點

優點:

  1. Python的定位是“優雅”、“明確”、“簡單”,所以Python程式看上去總是簡單易懂,初學者學Python,不但入門容易,而且將來深入下去,可以編寫那些非常非常複雜的程式。
  2. 開發效率非常高Python有非常強大的第三方庫,基本上你想通過計算機實現任何功能,Python官方庫裡都有相應的模組進行支援,直接下載呼叫後,在基礎庫的基礎上再進行開發,大大降低開發週期,避免重複造輪子。
  3. 高階語言————當你用Python語言編寫程式的時候,你無需考慮諸如如何管理你的程式使用的記憶體一類的底層細節
  4. 可移植性————由於它的開源本質,Python已經被移植在許多平臺上(經過改動使它能夠工 作在不同平臺上)。如果你小心地避免使用依賴於系統的特性,那麼你的所有Python程式無需修改就幾乎可以在市場上所有的系統平臺上執行
  5. 可擴充套件性————如果你需要你的一段關鍵程式碼執行得更快或者希望某些演算法不公開,你可以把你的部分程式用C或C++編寫,然後在你的Python程式中使用它們。
  6. 可嵌入性————你可以把Python嵌入你的C/C++程式,從而向你的程式使用者提供指令碼功能。

缺點:

         1.   執行速度慢:這裡是指與C和C++相比。

   2.程式碼不能加密,因為PYTHON是解釋性語言,它的原始碼都是以名文形式存放的。

         3. 執行緒不能利用多CPU問題

Python直譯器

CPython使用最廣的Python直譯器。教程的所有程式碼也都在CPython下執行。

預設直譯器

IPython

IPython只是在互動方式上有所增強,但是執行Python程式碼的功能和CPython是完全一樣的。

CPython用>>>作為提示符,而IPython用In [序號]:作為提示符。

PyPy

PyPy但是PyPy和CPython有一些是不同的,這就導致相同的Python程式碼在兩種直譯器下執行可能會有不同的結果。

採用JIT技術,對Python程式碼進行動態編譯(注意不是解釋),所以可以顯著提高Python程式碼的執行速度

Jython

Jython是執行在Java平臺上的Python直譯器,可以直接把Python程式碼編譯成Java位元組碼執行。

IronPython

IronPython和Jython類似,只不過IronPython是執行在微軟.Net平臺上的Python直譯器,可以直接把Python程式碼編譯成.Net的位元組碼。

小結:

Python的直譯器很多,但使用最廣泛的還是CPython。如果要和Java或.Net平臺互動,最好的辦法不是用Jython或IronPython,而是通過網路呼叫來互動,確保各程式之間的獨立性。

Python的執行過程

在說這個問題之前,我們先來說兩個概念,PyCodeObjectpyc檔案

我們在硬碟上看到的pyc自然不必多說,而其實PyCodeObject則是Python編譯器真正編譯成的結果。我們先簡單知道就可以了,繼續向下看。

python程式執行時,編譯的結果則是儲存在位於記憶體中的PyCodeObject中,當Python程式執行結束時,Python直譯器則將PyCodeObject寫回到pyc檔案中。

python程式第二次執行時,首先程式會在硬碟中尋找pyc檔案,如果找到,則直接載入,否則就重複上面的過程。

所以我們應該這樣來定位PyCodeObject和pyc檔案,我們說指定直譯器pyc檔案其實是PyCodeObject的一種持久化儲存方式。

相關推薦

python基礎——作業系統簡介

不同應用領域的主流作業系統 l  桌面作業系統 l  伺服器作業系統 l  嵌入式作業系統 l  移動裝置作業系統   桌面作業系統 Windows系列 使用者群體很大 MacOS 適合於開發人員 Linux 應用軟體比較少 &nbs

Python基礎-python簡介

一、簡介:   python是一種面向物件的解釋性計算機程式設計語言,由荷蘭人Guido  von  Rossum於1989年的聖誕節發明。 Python語言的特色:   1、python是一門解釋性語言     解釋性語言:在程式執行的時候才會進行翻譯     編譯性語言:在執

Python基礎python簡介

Python介紹 Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/), 是一種面向物件的解釋型計算機程式設計語言,由荷蘭人Guido van Rossum於1989年發明,1989年聖誕節期間,在阿姆斯特丹,Guido為了打發聖誕節的無趣,決

Python 基礎爬蟲簡介(測試環境為 Python 2.7)

1、什麼是爬蟲? 爬蟲是一種自動訪問網際網路,並提取資料的一個程式。歸根結底,所謂爬蟲,不過是我們用Python語言編寫的一個小程式而已。 針對的問題:有些網頁需要我們登陸後才能訪問,而有些網頁則不需要。動態登陸頁面由Ajax非同步載入實現,往往針對此類頁面的

Python基礎---Python介紹

python介紹 python基礎 python應用領域 python的創始人為吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆為了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程序,作為ABC語言的一種繼承。 2017年最新的TIOBE排行榜,Py

Python基礎---python中的異常處理

運行 class nal 則無 assert 拋出異常 dex 指定 value Python中的異常處理 一、什麽是異常處理 python解釋器檢測到錯誤,觸發異常(也允許程序員自己觸發異常) 程序員編寫特定的代碼,專門用來捕捉這個異常(這段代碼與程序邏輯無關,與異常處理

[python基礎] python 2與python 3之間的區別 —— round

遇到 2.6 float 變化 pre 之間 問題 span 數據 round()在 py2和py3之間有些區別 在默認精度下, round返回值的數據類型發生了變化: py2 >>> round(2.6) 3.0 >>> >

Python基礎-Python流程控制

python上篇文章 Python基礎-基礎使用 我們已經知道了Python解釋器,Python的變量、和Python的輸入輸出、Python的註釋和字符集,這篇文章,我們主要講Python的流程控制本文防盜鏈:http://python789.blog.51cto.comPython基礎-Python流程控

01 python基礎——python解析yaml類型文件

列表 RR 文件格式 數字 markup today 直觀 結構 Oday 目錄 [TOC] 一、yaml介紹 yaml全稱Yet Another Markup Language(另一種標記語言)。采用yaml作為配置文件,文件看起來直觀、簡潔、方便理解。y

1-01-Python基礎(Python概述)

器) int 講師 編程 win strong ubuntu arm ron Python基礎 Python概述 計算機語言概述 語言:交流的工具,溝通媒介 計算機語言:人跟計算機交流的工具,翻譯官 Python是計算機語言裏的一種 Python編程語言 代碼:人類語

Python基礎-python的資料型別

1.整型 In [14]: a = 1 In [15]: print(a) 1 In [16]: type(a) ##檢視資料型別 Out[16]: int 2.浮點型 In [17]: b = 1.2 In [18]: type(b) O

Python基礎-python的輸入輸出(python2與python3的區別);算術運算子

程式:輸入(鍵盤)----程式碼(java/python/c)----輸出(螢幕) #每一行程式碼只負責完成一個動作 #print的作用:把內容輸出到螢幕上來 #python是一個格式非常嚴格的程式設計語言,每行程式碼前面都不要增加空格 輸入: 1.1 pyhon2*

Python基礎-python基本語法

一、註釋   分類:單行註釋和多行註釋   1、單行註釋     單行註釋以#開頭,在當前行內,#後面的內容就是註釋內容      2、多行註釋     被兩個   '''    或     ''''''   

Python基礎-python資料型別(四)

python資料型別            在python中,變數就是變數,它沒有型別,我們所說的型別是變數所指的記憶體中物件的型別。   python中的資料型別:     1、數字            python中沒有專門定義常量的方式,通常使用大寫變數名錶示     2、字串     

Python基礎-python資料型別之元祖、字典(四)

元祖    Python的元組與列表類似,不同之處在於元組的元素不能修改。元組使用小括號,列表使用方括號。 tuple=(1,2,3,4) print(tuple)   訪問元祖     通過索引訪問,也可以進行切片操作 tuple=(1,2,3,4) print(tuple[2])

Python基礎-python資料型別之列表(四)

列表 格式 namesList = [ 字串,數字,列表,元祖,集合] 列表中的元素可以是不 同類型的 列表的相關操作 列表中存放的資料是可以進行修改的,比如"增"、"刪"、"改"" <1>插入元素("增") Append(元素):在列表尾部追加一個元素 Extend&n

python基礎 -python的關鍵字

關鍵字: 關鍵字就是在python內部已經使用的識別符號 關鍵字具有特殊的功能和含義 開發者不允許定義和關鍵字相同的名字和識別符號 通過以下命令樂意檢視python 中的關鍵字 import keyword print(keyword.kwlist) [‘

08 python基礎--python

08.1 python庫簡介 標準庫:隨直譯器直接安裝到作業系統中的功能模組 第三方庫:需要經過安裝才能使用的功能模組 08.2 python庫用法 庫Library、包Package、模組Module,統稱模組 import turtle import turtle as

Python基礎-python流程控制之順序結構和分支結構(五)

流程控制   流程:計算機執行程式碼的順序,就是流程   流程控制:對計算機程式碼執行順序的控制,就是流程控制   流程分類:順序結構、選擇結構(分支結構)、迴圈結構 順序結構   一種程式碼自上而下執行的結構,是python還有其他語言的預設執行的流程。 選擇結構(分支結構)   分類:單分支

Python基礎-python流程控制之迴圈結構(五)

迴圈結構     迴圈結構可以減少源程式重複書寫的程式碼量,用來描述重複執行某段演算法的問題。   Python中迴圈結構分為兩類,分別是 while 和 for .. in。   一、while迴圈     格式1:       while 判斷語句: