Python介紹
發展史
Python 2 or 3?
最新的TIOBE排行榜,Python追趕PHP佔據第五, Python崇尚優美、清晰、簡單,是一個優秀且廣泛使用的語言。
Python可應用於眾多領域,如:資料分析、元件整合、網路服務、影像處理、數值計算和科學計算等眾多領域。目前業界幾乎所有大中型網路企業都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。網路公司廣泛使用Python來做的事一般有:自動化維運、自動化測試、大數據分析、爬蟲、Web 等。
- WEB開發: 眾多優秀的WEB框架,眾多大型網站皆為Pytbox豆瓣。 。 。 ,典型WEB框架有Django
- 科學運算、人工智慧: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas
- 系統運作: 運維人員必備語言量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作為動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很高效,生產效率遠高於c,c++,java,尤其擅長策略回測
- 圖形GUI: PyQT, WxPython,TkInter
- Python與其它常見語言對比
- C 和Python、Java、C#等碼 C機語言: 程式碼直接在機器上執行一條指令控制CPU工作
對於速度:高級語言在運行速度上無法與C相比
Python 和Java、C#等
對於使用:Linux原裝Python,其他語言沒有;以上幾門語言都有非常豐富的類庫支援
對於速度:Python在速度上可能稍顯色遜所以,Python和其他語言沒有什麼本質區別,其他差異在於:擅長某個領域、人才豐富、先入為主。
python是一門動態解釋性的強類型定義語言
優點:
- 可移植性————由於它的開源本質,Python已經被移植在許多平台上(經過改變使它能夠工作在不同平台上)。如果你小心地避免使用依賴系統的特性,那麼你的所有Python程式無需修改就幾乎可以在市場上所有的系統平台上運行
- 可擴展性————如果你需要你的一段關鍵程式碼運行得更快或希望某些演算法不公開,你可以把你的部分程式用C或C++編寫,然後在你的Python程式中使用它們。
- 可嵌入性————你可以把Python嵌入你的C/C++程序,從而向你的程式使用者提供腳本功能。
- 缺點:
速度慢,Python 的運行速度相比C語言慢很多,跟JAVA相比也要慢一些,因為Python是解釋型語言,你的程式碼在執行時會一行一行地翻譯成CPU能理解的機器碼,這個翻譯過程非常耗時,所以很慢。而C程式是執行前直接編譯成CPU能執行的機器碼,所以非常快。但其實這裡所指的運作速度慢在多數情況下使用者是無法直接感知到的,必須藉助測試工具才能體現出來。
代碼不能加密,因為PYTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認為這算是一個缺點,如果你的項目要求源代碼必須是加密的,那你一開始就不應該用Python來去實現。
線程不能利用多CPU問題,這是Python被人詬病最多的一個缺點,GIL即全局解釋器鎖(Global Interpreter Lock),是計算機程式設計語言解釋器用於同步線程的工具,使得任何時刻只有一個執行緒在執行,Python的執行緒是作業系統的原生執行緒。在Linux上為pthread,在Windows上為Win thread,完全由作業系統調度執行緒的執行。一個python解釋器進程內有一條主線程,以及多條用戶程式的執行線程。即使在多核心CPU平台上,由於GIL的存在,所以禁止多執行緒的並行執行。關於這個問題的折衷解決方法,我們在以後線程和進程章節裡再進行詳細探討。
Python的種類
當我們寫Python程式碼時,我們得到的是一個包含Python程式碼的以.py為副檔名的文字檔。要運行程式碼,就需要Python解釋器去執行.py檔。
由於整個Python語言從規範到解釋器都是開源的,所以理論上,只要水平夠高,任何人都可以編寫Python解釋器來執行Python程式碼(當然難度很高)。事實上,確實存在多種Python解釋器。
CPython
當我們從Python官方網站下載並安裝好Python 2.7後,我們就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,所以叫CPython。在命令列下運行python就是啟動CPython解釋器。
CPython是使用最廣的Python解釋器。教程的所有程式碼也都在CPython下執行。
IPython
IPython是基於CPython之上的一個互動式解釋器,也就是說,IPython只是在互動方式上有所增強,但是執行Python程式碼的功能和CPython是完全一樣的。好比很多國產瀏覽器雖然外觀不同,但核心其實都是呼叫了IE。
CPython用>>>作為提示符,而IPython用In [序號]:作為提示符。
PyPy
PyPy是另一個Python解釋器,它的目標是執行速度。 PyPy採用JIT技術,對Python程式碼進行動態編譯,所以可以顯著提高Python程式碼的執行速度。
絕大部分Python程式碼都可以在PyPy下運行,但是PyPy和CPython有一些是不同的,這就導致相同的Python程式碼在兩種解釋器下執行可能會有不同的結果。如果你的程式碼要放到PyPy下執行,就需要了解PyPy和CPython的不同點。
Jython
Jython是運行在Java平台上的Python解釋器,可以直接把Python程式碼編譯成Java字節碼執行。
IronPython
IronPython和Jython類似,只不過IronPython是運行在微軟.Net平台上的Python解釋器,可以直接把Python程式碼編譯成.Net的字節碼。
小結
Python的解釋器很多,但使用最廣泛的還是CPython。如果要和Java或.Net平台交互,最好的方法不是用Jython或IronPython,而是透過網路呼叫來交互,確保各程式之間的獨立性。
二、Python發展史
1989年,為了打發聖誕節假期,Guido開始寫Python語言的編譯器。 Python這個名字,來自Guido所摯愛的電視劇Monty Python’s Flying Circus。他希望這個新的叫做Python的語言,能符合他的理想:創造一種C和shell之間,功能全面,易學易用,可拓展的語言。
1991年,第一個Python編譯器誕生。它是用C語言實現的,並且能夠呼叫C語言的函式庫檔。從一出生,Python已經具有了:類,函數,異常處理,包含表和字典在內的核心資料類型,以及模組為基礎的拓展系統。
Granddaddy of Python web frameworks, Zope 1 was released in 1999
Python 1.0 - January 1994 增加了 2.0 - October 16, 2000,加入了內存回收機制,構成了現在Python語言框架的基礎
Python 2.4 - November 30, 2004, 同年目前最受歡迎的WEB框架Django 誕生
Pytept 2. - October 1, 2008
Python 2.7 - 2010 年7 月3 日
2014 年11 月,宣布將支援Python 2.7 到2020 年,並重申不會發布2.8 版本,因為用戶將在盡快遷移到
Python 3.0 - 2008年12月3日- Python 3.1 - 2009年6月27日
- Python 3.22011年月9月2日2012年9月
- Python 3.4 - 2014年3月16日
- Python 3.5 - 2015年9月13日
- 、 總結:Python 2.x是遺產,Python 3.x是該語言的現在和未來
- Python 3.0 於 2008 年發布。最終的 2.x 版本 2.7 於 2010 年中期發布,並聲明對此生命週期終止版本的擴展支援。此後 2.x 分支將不會再發布新的主要版本。 3.x 正在積極開發中,並且已經發布了五年多的穩定版本,包括 2012 年的 3.3 版、2014 年的 3.4 版和 2015 年的 3.5 版。這意味著,例如,所有最近的標準庫改進都是僅
Guido van Rossum(Python 語言的原始創建者)決定正確清理 Python 2.x,而不是像2.x 系列中的新版本。最顯著的改進是更好的 Unicode 支援(預設所有文字字串都是 Unicode)以及更清晰的位元組/Unicode 分離。
此外,核心語言的幾個方面(例如print 和exec 是語句,整數使用Floor pision)已被調整為更容易讓新手學習並且與該語言的其餘部分更加一致,並且舊的缺陷已被刪除(例如,所有類別現在都是新樣式的,「range()」會傳回一個記憶體高效的可迭代,而不是2.x 中的列表)。
py2與3的詳細差異
PRINT IS A FUNCTION
該語句已替換為 print() 函數,並使用關鍵字參數取代舊語句(PEP 3105)大部分的特殊語法。範例:
Old: print "The answer is", 2*2 New: print("The answer is", 2*2) Old: print x, # Trailing comma suppresses newline New: print(x, end=" ") # Appends a space instead of a newline Old: print # Prints a newline New: print() # You must call the function! Old: print >>sys.stderr, "fatal error" New: print("fatal error", file=sys.stderr) Old: print (x, y) # prints repr((x, y)) New: print((x, y)) # Not the same as print(x, y)!
您也可以自訂項目之間的分隔符,例如:
print("There are possibilities!", sep=""ALL IS UNICODE NOW (A, *REST,B)=RANGE(5)
<strong>>>> a,*rest,b = range(5) >>> a,rest,b (0, [1, 2, 3], 4) </strong>
某些庫改名了
|
|
ConfigParser |
configparser |
copy_reg
|
隊列 |
|
|
標記庫 |
_標記庫
|
repr |
|
test.support
|
|
|
|
還有誰不支援PYTHON3? |
主要軟體包的一個主要示例,其中移植到 3.x 絕非易事
|

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Dreamweaver CS6
視覺化網頁開發工具