怎么理解python語言_Python語言入門1-理解Python語言

本文主要向大家介紹了Python語言入門的理解Python語言,通過具體的內容向大家展現,希望對大家學習Python語言入門有所幫助。

python是解釋型的腳本語言

解釋型語言

與C/C++等編譯型語言相比,python語言的程序并不是首先編譯成二進制機器碼后運行,而是由python解析器解釋一句并在python虛擬機中運行一句,直到程序結束或者拋出錯誤。這種方式使得程序開發人員不用過多的關心庫的鏈接、編譯錯誤等問題,這些都由解釋器和虛擬機代勞,大大的減少了開發時間。

腳本語言

腳本語言也稱動態語言,不需要事先將程序編譯,可以動態的部署,即在控制臺中輸入一句運行一句。這種動態性在一定的程度上簡化了“開發、部署和調試”的時間。

python是一種面向對象的高級語言

屬性和方法

在python中,一切皆是對象,比如一個函數、一個類、甚至是一個模塊、一個文件。在python中,一個對象一般由屬性和方法組成,屬性即該對象包含的變量,方法即實現對該對象的操作,例如增、刪、查、改。例如實現一個圓的對象,其屬性包含圓形坐標和半徑,其方法有創建一個圓(初始化)、修改半徑或者圓形、刪除這個圓、或者在界面上畫出其圖像。

面向對象的三大特性

面向對象的編程語言,肯定具備封裝、多態以及繼承的三大特性

封裝

所謂封裝,也就是把客觀事物封裝成抽象的類,并且類可以把自己的數據和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏。封裝是面向對象的特征之一,是對象和類概念的主要特性。簡單的說,一個類就是一個封裝了數據以及操作這些數據的代碼的邏輯實體。在一個對象內部,某些代碼或某些數據可以是私有的,不能被外界訪問。通過這種方式,對象對內部數據提供了不同級別的保護,以防止程序中無關的部分意外的改變或錯誤的使用了對象的私有部分。在python中,默認所有屬性都是公有的,要想設置為私有,需要在屬性前面加上__(兩個下劃線),例如__time。

多態

簡單的理解多態,就是對象可以根據輸入的不同,響應不同的輸出。正式一些的說法就是一個類實例的相同方法在不同情形有不同表現形式。多態機制使具有不同內部結構的對象可以共享相同的外部接口。這意味著,雖然針對不同對象的具體操作不同,但通過一個公共的類,它們(那些操作)可以通過相同的方式予以調用。

繼承

所謂繼承是指可以讓某個類型的對象獲得另一個類型的對象的屬性的方法。它支持按級分類的概念。繼承是指這樣一種能力:它可以使用現有類的所有功能,并在無需重新編寫原來的類的情況下對這些功能進行擴展。通過繼承創建的新類稱為“子類”或“派生類”,被繼承的類稱為“基類”、“父類”或“超類”。繼承的過程,就是從一般到特殊的過程。要實現繼承,可以通過“繼承”(Inheritance)和“組合”(Composition)來實現。繼承概念的實現方式有二類:實現繼承與接口繼承。實現繼承是指直接使用基類的屬性和方法而無需額外編碼的能力;接口繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力;

面向對象的5大原則

單一職責原則SRP(Single Responsibility Principle)

是指一個類的功能要單一,不能包羅萬象。如同一個人一樣,分配的工作不能太多,否則一天到晚雖然忙忙碌碌的,但效率卻高不起來。

開放封閉原則OCP(Open-Close Principle)

一個模塊在擴展性方面應該是開放的而在更改性方面應該是封閉的。比如:一個網絡模塊,原來只服務端功能,而現在要加入客戶端功能, 那么應當在不用修改服務端功能代碼的前提下,就能夠增加客戶端功能的實現代碼,這要求在設計之初,就應當將服務端和客戶端分開,公共部分抽象出來。

替換原則(the Liskov Substitution Principle LSP)

子類應當可以替換父類并出現在父類能夠出現的任何地方。比如:公司搞年度晚會,所有員工可以參加抽獎,那么不管是老員工還是新員工, 也不管是總部員工還是外派員工,都應當可以參加抽獎,否則這公司就不和諧了。

依賴原則(the Dependency Inversion Principle DIP) 具體依賴抽象,上層依賴下層。假設B是較A低的模塊,但B需要使用到A的功能,

這個時候,B不應當直接使用A中的具體類: 而應當由B定義一抽象接口,并由A來實現這個抽象接口,B只使用這個抽象接口:這樣就達到 了依賴倒置的目的,B也解除了對A的依賴,反過來是A依賴于B定義的抽象接口。通過上層模塊難以避免依賴下層模塊,假如B也直接依賴A的實現,那么就可能造成循環依賴。一個常見的問題就是編譯A模塊時需要直接包含到B模塊的cpp文件,而編譯B時同樣要直接包含到A的cpp文件。

接口分離原則(the Interface Segregation Principle ISP)

模塊間要通過抽象接口隔離開,而不是通過具體的類強耦合起來。

python的優缺點

優點

語法以及數據結構簡單

python的語法比較符合人類的習慣,所以讀代碼的時候有一種讀英語的感覺。python的本質是偽代碼,初衷就是希望開發人員能夠專注于問題本身而不受編程語言的限制。 python的數據結構一共有3種:序列(列表、元組、字符串)、字典(映射)、集合。對于每一種的數據結構的操作(增刪查改)的語法都差不多,非常的方便。

格式規范

python采用強制縮進的方式作為程序間隔,一般縮進為4個空格。這樣的好處是代碼容易閱讀而且非常的簡潔。

python是開源的語言

由于python的開源性,可以很容易的閱讀源碼,并且自由的發布軟件。

可擴展性和嵌入性

如果你需要你的一段關鍵代碼運行得更快或者希望某些算法不公開,你可以把你的部分程序用C或C編寫,然后在你的Python程序中使用它們。你可以把Python嵌入你的C/C程序,從而向你的程序用戶提供腳本功能。

第三方庫豐富

python的庫非常多,基本各個領域都有非常有效的庫,這些庫給開發人員帶來了極大的方便。

缺點

運行速度稍慢

相對于C等編譯型語言,python在運行速度(尤其是計算速度)稍慢,但是可以用C重寫大量計算的部分代碼,再用python調用,可以提升速度。

本文由職坐標整理并發布,了解更多內容,請關注職坐標編程語言Python頻道!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260136.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260136.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260136.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SD Card Formatter for Mac Download

https://www.sdcard.org/downloads/formatter_4/eula_mac/ SDFormatter Mac版是一款Mac OS平臺上的sd卡修復工具,SDFormatter是一款比較好用的SD卡格式化工具,能夠格式化SD存儲卡和SDHC記憶Card(SD/SDHC 存儲卡),使用遵…

linux刪除用戶oracle用戶名,linux添加用戶useradd 刪除用戶userdel

1.作用useradd或adduser命令用來建立用戶帳號和創建用戶的起始目錄,使用權限是超級用戶。2.格式useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name3.主要參數-c:加上備注文字&#xff0c…

Asp.net創建偽靜態頁面

下面是我研究了好幾天和同事一起才研究出來的,原創。 1偽靜態的定義: 偽靜態是相對真實靜態來講的,通常我們為了增強搜索引擎的友好面,都將文章內容生成靜態頁面,但是有的朋友為了實時的顯示一些信息。或者還想運用動態…

Spring 管理Bean(獲取Bean,初始化bean事件,自動匹配ByName······等)

1.實例化spring容器 和 從容器獲取Bean對象 實例化Spring容器常用的兩種方式: 方法一: 在類路徑下尋找配置文件來實例化容器 [推薦使用] ApplicationContext ctx new ClassPathXmlApplicationContext(new String[]{"beans.xml"}); 方法二: 在文件系統路徑…

directoryinfo 讀取 映射磁盤_LoaRunner性能測試系統學習教程:磁盤監控(5)

上期我們講到LoaRunner性能測試內存監控,這期我們講LoaRunner性能測試磁盤監控。磁盤監控在介紹磁盤監控前,先介紹固定磁盤存儲管理的性能,固定磁盤存儲器的結構層次如圖所示。每個單獨的磁盤驅動器稱為一個物理卷(PV)…

Eclipse新建web項目正常啟動tomcat不報錯,但不能訪問項目的解決方法

原因: 雖然我手動添加了自己下載的tomcat,但是由于在Eclipse中創建Server時,“Server Locations”選項采用的時默認配置,即"Use workspace metadata(does not modify tomcat installation ),這意味著該Server不會改變TOMCAT的安裝及部署目錄&#…

oracle10g執行insert,oracle 10g 增強審計。表insert 及bind values

oracle 10g之前,可以審計對表的操作,但不能記錄操作時的各個列的值。在10g中,已經可以審核并監控到具體的sql語句及內容了。要求10g以后的版本。alter system set audit_traildb_extended scopespfile;[more]示例;SQL> show us…

點擊按鈕 變換圖片

<html xmlns"http://www.w3.org/1999/xhtml"><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><title>變換圖片</title><script type"text/javascript">function chan…

[鄰接表] 學習鄰接表的表示方法+BFS

算法導論上面的偽代碼實現哦&#xff0c;沒啥技術&#xff0c;不過這個鄰接表表示法&#xff08;figo大神教的&#xff09;很nice。 簡單說一下&#xff0c;head里面是放著自己節點后面鏈的最后一個元素在邊池中的位置&#xff0c;邊池里面成一個一個鏈狀&#xff0c;像并查集&…

wordpress漏洞_WordPress XSS漏洞可能導致遠程執行代碼(RCE)

原作者&#xff1a; Ziyahan Albeniz在2019年3月13日&#xff0c;專注于靜態代碼分析軟件的RIPS科技公司發布了他們在所有版本的WordPress 5.1.1中發現的跨站點腳本(XSS)漏洞的詳細信息。該漏洞已在不同類別的各種網站上公布。有些人將其歸類為跨站點請求偽造(CSRF)漏洞&#x…

centOS 6環境下安裝R-3.3.2及Rstudio-server

【編譯R語言】 1、下載安裝R語言 # 下載R-3.3.2 $ wget https://cran.r-project.org/src/base/R-3/R-3.3.2.tar.gz# 安裝R-3.3.2 $ tar -zxvf R-3.3.2.tar.gz $ cd R-3.3.2# 安裝到默認目錄下 --perfix/opt/R 或 /usr/local/lib64/R $ ./configure --prefix/opt/R --with-re…

DJ輪回舞曲網下載教程

該網站網址為&#xff1a;http://www.92cc.com/ 昨天有網友問我這個網站能不能下載。我告訴他&#xff0c;只要能在線試聽的就能下載 于是今天出個臨時教程 教大家如何獲取試聽的音樂URL。 第一步找到試聽的網址&#xff0c;如&#xff1a; http://www.92cc.com/p97206.html 第…

【DP】【Asia - Harbin - 2010/2011】【Permutation Counting】

【題目描述】Given a permutation a1, a2,...aN of {1, 2,..., N}, we define its E-value as the amount of elements where ai > i. For example, the E-value of permutation {1, 3, 2, 4} is 1, while the E-value of {4, 3, 2, 1} is 2. You are requested to find h…

三豐三坐標編程基本步驟_三豐三坐標CRYSTA APEX S776

日本三豐MITUTOYO從1934年成立至今&#xff0c;專力致于精密測量儀器的研發和生產&#xff0c;在七十多年中&#xff0c;日本三豐量具MITUTOYO已成為世界最大綜合測量儀器的制造商&#xff0c;它生產的產品包括千分尺&#xff0c;卡尺&#xff0c;千分表&#xff0c;高度尺&…

oracle的文件后綴名,轉:數據文件的擴展名是ora,dbf,dat的,有什么區別?

只是通過擴展名來標識文件的類型而已&#xff0c;對于數據文件不管是ora/dat/dbf&#xff0c;都是一樣的&#xff0c;沒有什么區別。.dbf-數據文件&#xff0c; .tmp-臨時文件&#xff0c;.log-重作日志文件(redo log file)&#xff0c; .ctl-控制文件.ora-參數文件&#xff0c…

Unity3D研究院之Android同步方法讀取streamingAssets

版本Unity5.3.3 Android 小米pad1 首先非常感謝 守著陽光 同學在下面的留言。讓我解決了一個大的謎團。。 開始我知道 StreamingAssets 路徑是這個 path “jar:file://” Application.dataPath “!/assets/”; 文檔在這里&#xff1a; http://docs.unity3d.com/Manual/Strea…

Codeforces Round 261 Div.2 D Pashmak and Parmida's problem --樹狀數組

題意&#xff1a;給出數組A&#xff0c;定義f(l,r,x)為A[]的下標l到r之間&#xff0c;等于x的元素數。i和j符合f(1,i,a[i])>f(j,n,a[j])&#xff0c;求有多少對這樣的(i,j). 解法&#xff1a;分別從左到右&#xff0c;由右到左預處理到某個下標為止有多少個數等于該下標&…

JQuery AJAX提交中文亂碼的解決方案

$.post(doSearch.action, {page : page,vip : vip,searchType : searchType,subtype : subtype,type : type,contentType: "application/x-www-form-urlencoded; charsetutf-8", keyword : keyword}, function(data) //回傳函數{var val;}); 解決這個中文亂碼問題&am…

列舉ospf的5種報文類型_危險品貨物各種包裝類型以及裝箱技巧

對于危險貨物來說&#xff0c;其危險性的大小除與貨物的本身性質有關外&#xff0c;還與貨物的包裝方式密切相關。因而&#xff0c;危險貨物進箱條件的確定&#xff0c;也必須考慮到貨物的包裝方法。一、集裝箱內徑20GP內徑&#xff1a;長5.8M*寬2.34M*高2.34M40GP內徑&#xf…

linux一行多個命令行,如何在一行中運行多個Linux命令

對于每個Linux管理員來說&#xff0c;熟練使用各種命令行是他們的特性。但對于普通用戶來說&#xff0c;可能還是有難度&#xff0c;您需要繼續練習Linux命令&#xff0c;并找到使該任務更有效的方法。實現這個特定目標的一種方法是學習一些技巧&#xff0c;這些技巧可以提高發…