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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026630/viewspace-2946566/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【python】python安裝Python
- python ----python的安裝Python
- python:python的多程式Python
- python--- 之The program 'python' can be found in the following packages: * python-minimal * python3PythonPackage
- Python IDLE和Python的區別!Python入門教程Python
- python學習之初識pythonPython
- 【Python】python類的繼承Python繼承
- Python 序列化(Python IO)Python
- Python合集之Python函式Python函式
- python _Python
- python教程(一)·python環境搭建Python
- 學習Python的日子 Python(6)Python
- [python] Python型別提示總結Python型別
- Python補充02 Python小技巧Python
- 小白自學Python(一) -- Python教程Python
- Python之將Python字串生成PDFPython字串
- Python 字串格式化(Python IO)Python字串格式化
- Python 檔案讀寫(Python IO)Python
- 『python入門:』 python的介紹Python
- 與 Python 之父聊天:更快的 Python!Python
- python(python中的super函式、)Python函式
- python中#!/usr/bin/python與#!/usr/bin/env python的區別Python
- Python入門:Python 2與Python3有什麼區別?Python
- 學習Python選擇Python2還是Python3呢?Python
- Python學習筆記|Python之程式Python筆記
- Python 筆記-2-1-Python 概述Python筆記
- Python 微服務開發--Python Microservices DevelopmentPython微服務ROSdev
- python SQL基礎與python互動PythonSQL
- 「Python」Convert map object to numpy array in python 3PythonObject
- 【Python】阿里雲python sdk快速入門Python阿里
- Python - opencv-python 獲取影片尺寸PythonOpenCV
- Python基礎篇-Python基礎01Python
- Python基礎之Python資料世界Python
- 有趣的Python:Python控制鍵盤滑鼠Python
- Python是什麼?Python有哪些框架?Python框架
- Python的容器有哪些?Python課程Python
- 小白自學Python(五)Python運算子Python
- 小白自學Python(六)Python字串(上)Python字串