Python成長筆記 - 基礎篇 (一)python簡介

来源:http://www.cnblogs.com/huangmx-amin/archive/2016/07/26/5708639.html
-Advertisement-
Play Games

一、Python介紹 Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/),由吉多·範羅蘇姆(Guido van Rossum)於1989年發明,第一個公開發行版發行於1991年。 Python是一個高層次的結合瞭解釋型、動態強類型的、面向對象的腳本語言 Python 是一種 ...


一、Python介紹

Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/),由吉多·範羅蘇姆(Guido van Rossum)於1989年發明,第一個公開發行版發行於1991年。

Python是一個高層次的結合瞭解釋型、動態強類型的、面向對象的腳本語言

  • Python 是一種解釋型語言: 這意味著開發過程中沒有了編譯這個環節,編譯型語言是一次把所有的代碼轉換成機器語言,然後寫成可執行文件;而解釋型是在程式運行的前一刻,還只有源程式而沒有可執行程式,程式每執行到源程式的某一條指令,才會有一個稱之為解釋程式的外殼程式將源代碼轉換成二進位代碼以供執行,總言之,就是不斷地解釋、執行、解釋、執行……所以,解釋型程式是離不開解釋程式的。打個比方:假如你打算閱讀一本外文書,而你不知道這門外語,那麼你可以找一名翻譯,給他足夠的時間讓他從頭到尾把整本書翻譯好,然後把書的母語版交給你閱讀;或者,你也立刻讓這名翻譯輔助你閱讀,讓他一句一句給你翻譯,如果你想往回看某個章節,他也得重新給你翻譯。 類似於PHP和Perl語言。

  編譯型與解釋型,兩者各有利弊。前者由於程式執行速度快,同等條件下對系統要求較低,因此像開發操作系統、大型應用程式、資料庫系統等時都採用它,像C/C++、Pascal/Object Pascal(Delphi)、VB等基本都可視為編譯語言,而一些網頁腳本、伺服器腳本及輔助開發介面這樣的對速度要求不高、對不同系統平臺間的相容性有一定要求的程式則通常使用解釋性語言,如Java、JavaScript、VBScript、Perl、Python等等。 

  • Python 是動態語言: 這意味著python程式只有在運行期間才去做數據類型檢查的語言,也就是說,在用動態類型的語言編程時,永遠也不用給任何變數指定數據類型,該語言會在你第一次賦值給變數時,在內部將數據類型記錄下來。Python和Ruby就是一種典型的動態類型語言,其他的各種腳本語言如VBScript也多少屬於動態類型語言。

 靜態類型語言與動態類型語言剛好相反,它的數據類型是在編譯其間檢查的,也就是說在寫程式時要聲明所有變數的數據類型,C/C++是靜態類型語言的典型代表,其他的靜態類型語言還有C#、JAVA等。

 

  • Python 是強類型定義語言: 也就是說,一旦一個變數被指定了某個數據類型,如果不經過強制轉換,那麼它就永遠是這個數據類型了。舉個例子:如果你定義了一個整型變數a,那麼程式根本不可能將a當作字元串類型處理。強類型定義語言是類型安全的語言。

  • Python 是面向對象語言: 這意味著Python支持面向對象的風格或代碼封裝在對象的編程技術。

  • Python是初學者的語言:Python 對初級程式員而言,是一種偉大的語言,它支持廣泛的應用程式開發,從簡單的文字處理到 WWW 瀏覽器再到游戲。

二、Python特點

  • 1.易於學習:Python有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。
  • 2.易於閱讀:Python代碼定義的更清晰。

  • 3.易於維護:Python的成功在於它的源代碼是相當容易維護的。

  • 4.一個廣泛的標準庫:Python的最大的優勢之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh相容很好。

  • 5.互動模式:互動模式的支持,您可以從終端輸入並獲得結果的語言,互動的測試和調試代碼片斷。

  • 6.攜帶型:Python可以運行在多種硬體平臺和所有平臺上都具有相同的介面。

  • 7.可擴展:可以添加低層次的模塊到Python解釋器。這些模塊使程式員可以添加或定製自己的工具,更有效。

  • 8.資料庫:Python提供所有主要的商業資料庫的介面。

  • 9.GUI編程:Python支持GUI可以創建和移植到許多系統調用。

  • 10.可擴展性:相比 shell 腳本,Python 提供了一個更好的結構,且支持大型程式。

三、 Python在一些知名企業中的應用

目前業內幾乎所有大中型互聯網企業都在使用Python,如:
1、國外的Google、Yahoo!、CIA、NASA、Youtube、Dropbox、Instagram、、facebook 、RedHat等
2、國內的 豆瓣、知乎、百度、騰訊、搜狐、金山、盛大、網易、阿裡、土豆、汽車之家、春雨醫生、美團等等

四、 Python擅長的領域

Python可以應用於眾多領域,如:數據分析、組件集成、網路服務、圖像處理、數值計算和科學計算等眾多領域。

  1. 網路應用:包括web網站 、伺服器後臺服務等,在這方面Python有優秀的web框架如Django\Tornado\Flask等,網路服務框架有著名的Twisted,非同步通信有牛X的eventlet.
  2. 科學運算:隨著NumPy、SciPy、matplotlib、ETS等眾多程式庫的開發,Python越來越適合於做科學計算。與科學計算領域最流行的商業軟體MATLAB相比,Python是一門真正的通用程式設計語言,比MATLAB所採用的腳本語言的應用範圍更廣泛,有更多程式庫的支持,適用於Windows和Linux等多種平臺,完全免費並且開放源碼。雖然MATLAB中的某些高級功能目前還無法替代,但是對於基礎性、前瞻性的科研工作和應用系統的開發,完全可以用Python來完成。
  3. GUI程式:python提供了多個圖形開發界面的庫,包括PyQt,WxPython,自帶的有Tkinter,這些庫允許Python程式員很方便的創建完整的、功能健全的GUI用戶界面。
  4. 系統管理工具:Python可以是做運維人員最喜歡用的語言了,可以用它來輕鬆的開發自動化管理工具、監控程式等,事實上現在很多開源軟體也都是用Python開發的,如用於IT配置管理的SaltStack\Ansible,做虛擬化的OpenStack,做備份用的Bacula等。
  5. 其它程式:你知道嗎?Python用來寫爬蟲也是很拿手的,還有做游戲,之前看社區里有個哥們花了不到300行代碼就實現了《憤怒的小鳥》的游戲,還可以用來做嵌入式開發、做驅動程式等,總之,Python能做的事情還是非常多的,好好學吧,很快你就會fall in love with this great language!

五、Python解釋器

當我們編寫Python代碼時,我們得到的是一個包含Python代碼的以.py為擴展名的文本文件。要運行代碼,就需要Python解釋器去執行.py文件。

由於整個Python語言從規範到解釋器都是開源的,所以理論上,只要水平夠高,任何人都可以編寫Python解釋器來執行Python代碼(當然難度很大)。事實上,確實存在多種Python解釋器,例如:CPython、IPython、PyPy、IronPython、Jython等。我們常用的有CPython、PyPy

CPython

當我們從Python官方網站下載並安裝好Python 2.7後,我們就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,所以叫CPython。在命令行下運行python就是啟動CPython解釋器。

CPython是使用最廣的Python解釋器。教程的所有代碼也都在CPython下執行。

PyPy

PyPy是另一個Python解釋器,它的目標是執行速度。PyPy採用JIT技術,對Python代碼進行動態編譯(註意不是解釋),所以可以顯著提高Python代碼的執行速度。

絕大部分Python代碼都可以在PyPy下運行,但是PyPy和CPython有一些是不同的,這就導致相同的Python代碼在兩種解釋器下執行可能會有不同的結果。如果你的代碼要放到PyPy下執行,就需要瞭解PyPy和CPython的不同點。 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 結合關係 一般自左向右 單目+- 和 賦值= 自右向左 ...
  • 一、前言 七月的天氣分外炎熱,心中燥意難以撫平,決定梳理下之前落下的筆記。正好最近對JMM比較感興趣,就整理出了這篇文字。 二、序言 即使你的程式沒有顯示的創建任何線程,框架也可能為你創建了一些線程,這些線程調用的代碼必須是線程安全(thread safe)的。這一點給開發人員的設計和實現賦予了更重 ...
  • 第一問:為什麼學習Python? 虛妖說:為了還債,還技術債,很早接觸編程,卻一直徘徊,也碼了很多代碼,卻從未真真學會編程! 第二問:什麼是Python 是一種以簡潔、優雅著稱的解釋型、動態、強類型的高級編程語言; 簡潔和優雅: 體現在Python的語法風格,最明顯的一點是縮進,其他語言中縮進本來是 ...
  • package hello; import java.util.Scanner; public class Hello { public static void main(String[] args) { // TODO Auto-generated method stub System.out.p ...
  • R擁有許多用於存儲數據的對象類型,包括標量、向量、矩陣、數組、數據框、列表、因數。 1.標量:標量是只包含一個元素的向量 > a <- 1; # 數值型 > b <- "China"; # 字元型 > c <- TRUE; # 邏輯型 2.向量:向量用於存儲數值型、字元型或邏輯型數據的一維數組。通過 ...
  • Xml代碼 第一種 DOM 實現方法: 第二種,DOM4J實現方法 第三種 JDOM實現方法: 第四種SAX實現方法: ...
  • package hello; import java.util.Scanner; public class Hello { public static void main(String[] args) { // TODO Auto-generated method stub System.out.p ...
  • Mac 安裝 GO語言開發環境 官網:https://golang.org/ go語言的安裝:http://docscn.studygolang.com/doc/install 下載:go1.7rc3.darwin-amd64.pkg 預設安裝,被安裝了 /usr/local/go 目錄 並自設置了 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...