Python基礎-初識Python

來源:互聯網
上載者:User

標籤:python



本文防盜鏈:http://python789.blog.51cto.com


Python基礎-初識Python


    作者是一名營運工程師,以下為作者學習Python的筆記,希望能給大家帶來一些協助,寫的有不對的地方,還望大家指出來,或者加入我們,大家共同成長。


1、Python簡介

python的創始人為吉多·范羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·范羅蘇姆為了打發時間,決心開發一個新的指令碼解釋程式,作為ABC語言的一種繼承。 

python是一種物件導向,直譯式的電腦程式語言,Python崇尚優美、清晰、簡單,是一個優秀並廣泛使用的語言


2、Python應用領域

  • 雲端運算: 應用OpenStack

  • 自動化:Saltstack、Ansible

  • 系統營運: 營運人員必備語言

  • 圖形GUI: PyQT, WxPython,TkInte

  • WEB開發: 眾多大型網站均為Python開發,Youtube,典型WEB架構有Django

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

  • 金融行業:在金融工程領域,作為動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於c,c++,java,尤其擅長策略回測。


3、Python語言分析

程式設計語言主要從以下角度分類:

  • 編譯型和解釋型

  • 靜態語言和動態語言

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

3.1、Python編譯型

負責翻譯的程式來對我們的原始碼進行轉換,產生相對應的可執行代碼。專業一點,就稱為編譯(Compile),而負責編譯的程式自然就稱為編譯器(Compiler)。如果我們寫的程式碼都包含在一個源檔案中,那麼通常編譯之後就會直接產生一個可執行檔,我們就可以直接運行了。 

但對於一個比較複雜的項目,為了方便管理,我們通常把代碼分散在各個源檔案中,作為不同的模組來組織。這時編譯各個檔案時就會產生目標檔案(Objectfile)而不是前面說的可執行檔。一般一個源檔案的編譯都會對應一個目標檔案。這些目標檔案裡的內容基本上已經是可執行代碼了,但由於只是整個項目的一部分,所以我們還不能直接運行。待所有的源檔案的編譯都大功告成,我們就可以最後把這些半成品的目標檔案“打包”成一個可執行檔了,這個工作由另一個程式負責完成,由於此過程好像是把包含可執行代碼的目標檔案串連裝配起來,所以又稱為連結(Link),而負責連結的程式就叫連結程式(Linker)。

3.2、Python解釋型

打個比方:如果你打算預讀一本外文書,而你不知道這麼外語,那麼你可以找一名翻譯,給他足夠的時間讓他從頭到尾把整本書翻譯好,然後把書的母語版交給你閱讀。這個過程就編譯,或者你也立刻讓這名翻譯輔助你閱讀,讓他一句一句的給你翻譯,如果你想往回看某個章節他也的重新給你翻譯。 

兩種方式:前者就相當於編譯型:一次把所有的代碼轉換成機器語言,然後寫成可執行檔。而後者就相當於我們要的解釋型:在程式啟動並執行前一刻, 還只有來源程式而沒有可執行程式;而程每執行到資來源程式的某一條執行,則會有一個稱之為解釋程式的外殼程式,將原始碼轉換成二進位代碼以供執行.


從以上看來,Python是解釋型語言


4、Python優點

Python的定位是“優雅”、“明確”、“簡單”,所以Python程式看上去總是簡單易懂. 開發效率非常高,Python有非常強大的第三方庫,基本上你想通過電腦實現任何功能,Python官方庫裡都有相應的模組進行支援,直接下載調用後,在基礎庫的基礎上再進行開發,大大降低開發週期.

1、進階語言

當你用Python語言編寫程式的時候,你無需考慮諸如如何管理你的程式使用的記憶體一類的底層細節

2、可移植性

由於它的開源本質,Python已經被移植在許多平台上(經過改動使它能夠工 作在不同平台上)

3、可擴充性

如果你需要你的一段關鍵代碼運行得更快或者希望某些演算法不公開,你可以把你的部分程式用C或C++編寫,然後在你的Python程式中使用它們。

4、可嵌入性

你可以把Python嵌入你的C/C++程式,從而向你的程式使用者提供指令碼功能。


5、Python缺點

1、速度慢

Python 的運行速度相比C語言確實慢很多,跟JAVA相比也要慢一些.

2、代碼無法加密

因為PYTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認為這算是一個缺點,如果你的項目要求原始碼必須是加密的,那你一開始就不應該用Python來去實現。

3、線程不能利用多CPU 

GIL即全域解譯器鎖(Global Interpreter Lock),是電腦程式設計語言解譯器用於同步線程的 工具,使得任何時刻僅有一個線程在執行,Python的線程是作業系統的原生線程。在Linux上為pthread,在Windows上為Win thread,完全由作業系統調度線程的執行。一個python解譯器進程內有一條主線程,以及多條使用者程式的執行線程。即使在多核CPU平台上,由於 GIL的存在,所以禁止多線程的並存執行。


6、Python實現方式

Python身為一門程式設計語言,但是他是有多種實現方式的,這裡的實現指的是符合Python語言規範的Python解釋程式以及標準庫等。

Python的實現方式主要分為三大類

1.Cpython

2.Jpython

3.IronPython

6.1、CPython

Cpython是預設的Python解譯器,這個名字根據它是可移植的ANSI C語言代碼編寫而成的這事實而來的。

1.當執行Python執行代碼的時候,會啟用一個Python解譯器,將源碼(.py)檔案讀取到記憶體當中,然後編譯成位元組碼(.pyc)檔案,最後交給Python的虛擬機器(PVM)逐行解釋並執行其內容,然後釋放記憶體,退出程式。

2.當第二次在執行當前程式的時候,會先在目前的目錄下尋找有沒有同名的pyc檔案,如果找到了,則直接進行運行,否則重複上面的工作。

3.pyc檔案的目的其實就是為了實現代碼的重用,為什麼這麼說呢?因為Python認為只要是import匯入過來的檔案,就是可以被重用的,那麼他就會將這個檔案編譯成pyc檔案。

4.python會在每次載入模組之前都會先檢查一下py檔案和pyc檔案的最後修改日期,如果不一致則重建一份pyc檔案,否則就直接讀取運行。

6.2、 Jython

Jython是個Python的一種實現方式,Jython編譯Python代碼為Java位元組碼,然後由JVM(Java虛擬機器)執行,這意味著此時Python程式與Java程式沒有區別,只是原始碼不一樣。此外,它能夠匯入和使用任何Java類像Python模組。

6.3、IronPython

IronPython是Python的C#實現,並且它將Python代碼編譯成C#中間代碼(與Jython類似),然後運行,它與.NET語言的互通性也非常好。


7、Python安裝

7.1、windows

1.下載安裝包 Python3.5 for windows 2.安裝 預設安裝路徑:C:\python3.5.2 3.配置環境變數(原來的值;C:\python27,切記前面有分號) 右鍵電腦-->屬性-->進階系統設定-->環境變數-->找到變數名為Path的一行雙擊-->Python安裝目錄追加到變數值中。用分號;分割 4.Windows更新Python,卸載重裝即可

7.2、Mac

1.下載以下軟體,直接雙擊運行即可安裝 Mac OS X 下載安裝包直接雙擊安裝就行2.執行Python3命令即可查詢zhanghedeMacBook-Pro:~ zhanghe$ pythonPython 2.7.10 (default, Jul 30 2016, 18:31:42)[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwinType "help", "copyright", "credits" or "license" for more information.>>>


8、Python簡單入門

建立一個hello.py檔案編寫第一個程式

[[email protected] ~]# cat hello.py#!/usr/bin/env pythonprint ("hello world!")[[email protected] ~]# python hello.pyhello world


本文出自 “Python修行之路” 部落格,請務必保留此出處http://python789.blog.51cto.com/13425423/1977737

Python基礎-初識Python

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.