1. 程式人生 > >Python基礎-初識Python

Python基礎-初識Python

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$ python
Python 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 darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>


8、Python簡單入門

創建一個hello.py文件編寫第一個程序

[root@Bj-Py ~]# cat hello.py
#!/usr/bin/env python
print ("hello world!")
[root@Bj-Py ~]# python hello.py
hello world


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

Python基礎-初識Python