真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于python基礎(chǔ)知識的整理-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)建站專注于云安網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供云安營銷型網(wǎng)站建設(shè),云安網(wǎng)站制作、云安網(wǎng)頁設(shè)計(jì)、云安網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務(wù),打造云安網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供云安網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

這篇文章主要介紹關(guān)于python基礎(chǔ)知識的整理,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

近些年python語言非常流行,許多開發(fā)者都會學(xué)習(xí)一些python相關(guān)知識,為大家整理了python的一些基礎(chǔ)知識,希望對大家有一定的幫助。

關(guān)于python基礎(chǔ)知識的整理

注:下文Python代指Python3。

基本信息

  • 和Javascript一樣,面向?qū)ο蟆⒔忉屝?、動態(tài)數(shù)據(jù)類型

  • 一切皆為對象(Object),包含原始數(shù)據(jù)類型也由內(nèi)置構(gòu)造函數(shù)創(chuàng)建,高階對象為Object

  • 單行注釋使用#標(biāo)識,多行注釋同多行字符串

  • 靠縮進(jìn)約束邏輯分支,無大括號等多余運(yùn)算符

  • 支持多行單語句、單行多語句

  • 變量無需聲明,必須賦值才會正式聲明

  • 有自己的模塊系統(tǒng)

  • 文件以.py結(jié)尾。

基本構(gòu)成

Python中一切皆對象,數(shù)字、字符串、元組、列表、字典、函數(shù)、方法、類、模塊等等都是對象。

不同的編程語言以不同的方式定義“對象”。 某些語言中,它意味著所有對象必須有屬性和方法;另一些語言中,它意味著所有的對象都可以子類化。

在Python中,定義是松散的,某些對象既沒有屬性也沒有方法,而且不是所有的對象都可以子類化。 簡單可以解釋為:Python 中的一切都可以賦值給變量或者作為參數(shù)傳遞給函數(shù)。

所有對象都有三個共同特征: 

  • 身份:即對象數(shù)據(jù)(非變量)在內(nèi)存中的唯一id,可以通過函數(shù)id(obj)得到

  • 類型:對象的類型決定了對象可以保存什么類型的值,有哪些屬性和方法,可以進(jìn)行哪些操作,遵循怎樣的規(guī)則??梢允褂脙?nèi)建函數(shù)type()來查看對象的類型

  • :對象所表示的數(shù)據(jù)

大部分 Python 對象有屬性、值或方法,使用句點(diǎn).標(biāo)記法來訪問屬性。 最常見的屬性是函數(shù)和方法,一些 Python 對象也有數(shù)據(jù)屬性,如:類、模塊、文件等。

數(shù)據(jù)存儲

字符串、數(shù)字?jǐn)?shù)據(jù)在內(nèi)存中均為引用類型,即棧內(nèi)存保存數(shù)據(jù)本身,堆內(nèi)存維護(hù)一個變量池,如下實(shí)例: 

# 開辟內(nèi)存存儲數(shù)據(jù)'hello',并創(chuàng)建變量a,并將a的指針指向此數(shù)據(jù)
a = 'hello'
# 開辟內(nèi)存存儲數(shù)據(jù)'world',并更改變量a的指針,銷毀數(shù)據(jù)'hello'
a = 'world'
# 開辟內(nèi)存存儲數(shù)據(jù)"hello world!",并同時創(chuàng)建三個變量,將三個變量的指針同時指向此數(shù)據(jù)
b = c = d = "hello world!"
# 多個變量賦值,同上,分別先后對應(yīng)
e, f, g = 1, 2, 'python'

實(shí)際上變量a在首次聲明并賦值時,棧區(qū)開辟內(nèi)存存儲'hello'字符串, a再次賦值時,棧區(qū)重新開辟內(nèi)存存儲數(shù)據(jù)'world'字符串,同時將變量a的指針指向數(shù)據(jù)'world',銷毀數(shù)據(jù)'hello'。

其他數(shù)據(jù)類型,類似;如列表、字典:

a = [1,2,3,4]
# 變量a的指針不改變
a[0] = 5
# 變量a的指針改變
a = [2,3,4,5]

變量a更改列表子數(shù)據(jù)時,列表本身的指針和位置不會改變,但將a本身重新賦值時,則同上:原列表數(shù)據(jù)銷毀、指針指向新列表數(shù)據(jù)。

Python中支持刪除變量對對象的引用,使用del語句,如下:

a = 10
b = 20
c = 30
d = [1,2,3,4]
del a
del b, c
del d[0]

對象比較

  • == 操作符用于測試兩個被引用的對象的值是否相等

  • is 用于比較兩個被引用的對象是否是同一個對象

類型比較

  • type(obj)判斷數(shù)據(jù)類型

  • isinstance(object, classinfo)判斷實(shí)例是否屬于某類

緩存和內(nèi)存回收機(jī)制

緩存機(jī)制

Python 緩存了某些不變的對象對其進(jìn)行復(fù)用,而不是每次創(chuàng)建新的對象。 在 Python 中變量都是指向某一對象的引用,當(dāng)多個變量都引用了相同的對象,稱為共享引用。

如下代碼:

# 由于變量僅是對對象數(shù)據(jù)的一個引用,因此改變 a 并不會導(dǎo)致 b 的變化
a = 1
b = a
a = 0
print(a) # 0
print(b) # 1

# 對
a = [1, 2, 3]
b = a
a[0] = 0
print(a) # [0, 2, 3]
print(b) # [0, 2, 3]

內(nèi)存回收機(jī)制

每一個對象有兩個標(biāo)準(zhǔn)的頭部信息:

  • 類型標(biāo)識符:標(biāo)識對象數(shù)據(jù)類型

  • 引用的計(jì)數(shù)器:用于決定是否需要對對象進(jìn)行回收

計(jì)數(shù)器記錄了當(dāng)前指向該對象引用的數(shù)目,一旦對象的計(jì)數(shù)器為 0 ,即不存在對該對象的引用,則這個對象的內(nèi)存空間會被回收,和Javascript中基本一致, 可以通過sys模塊中的getrefcount()函數(shù)查詢一個對象計(jì)數(shù)器的值。

import sys
sys.getrefcount(1)
# 實(shí)測python的編譯過程和打印乃至getrefcount這個函數(shù)本身都會對目標(biāo)對象造成多余的引用計(jì)數(shù)

數(shù)據(jù)類型

數(shù)字 Numbers

三種類型:

  • int:整型 int(num)

  • float:浮點(diǎn)型 float(num)

  • complex:復(fù)數(shù)型 complex(a, b)

運(yùn)算相關(guān):

  • 數(shù)學(xué)常量...

  • 數(shù)學(xué)函數(shù)...

  • 隨機(jī)數(shù)函數(shù)...

  • 三角函數(shù)...

字符串 String

方法:str()包含一堆內(nèi)建函數(shù)

三種符號表示方式(三引號保持原有格式):

  • 'str'

  • "str"

  • '''str'''

  • """str"""

兩種操作/讀取方式:

  • 下標(biāo):str[0]

  • 中括號:str[:]

示例:

var1 = 'Hello World!'
print ("已更新字符串 : ", var1[:6] + 'Surmon!')
# 已更新字符串 :  Hello Surmon!

列表 List

簡單說:類似數(shù)組,可嵌套,可作為堆棧使用

基本格式:['str', 1, ['hello']],擁有各種類似數(shù)組操作的方法,訪問方式可使用下標(biāo)、中括號[index:index]。

元組 Tuple

簡單說:類似列表,但只讀。

基本格式:('', ''),和列表類似,擁有只讀特性,可拼接,擁有基本操作方法。

集合 Sets

簡單說:是一個無序不重復(fù)元素的序列

基本格式:{ }字面量 或 set()方法,創(chuàng)建一個空集合必須用set()而不是{ }字面量,因?yàn)?code>{ }字面量是用來創(chuàng)建一個空字典。

復(fù)雜說:類似于數(shù)學(xué)中的集合,可以進(jìn)行成員關(guān)系測試(交、差、并、補(bǔ)集),還可以用來去重。

BTW:類似于Jvascript中的Set數(shù)據(jù)結(jié)構(gòu)。

字典 Dictionary

簡單說:就是對象

與Javascript并無太大異樣,多了一些方法,和一些方法名稱的不同,僅可通過obj[key]訪問成員。

迭代器和生成器

就是Javascript中的Generator和yield,一句話的話就是:交出函數(shù)(運(yùn)算)的執(zhí)行權(quán),即暫停執(zhí)行。

兩個參考鏈接:

# 阮一峰 - Javascript 中的 Generator

# Python3 中的迭代器和生成器

函數(shù)

普通函數(shù)基本沒區(qū)別,區(qū)別的地方: 函數(shù)形參可以加一個*將函數(shù)所有不固定參數(shù)合并在一個元組,若參數(shù)為空,則返回一個空元組。

和Jvascript比的話,就是ES5中的構(gòu)造函數(shù),ES6中的class。

它用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。

對象是類的實(shí)例。就是面向?qū)ο罄玻舷挛牟辉偈?code>this,而是類函數(shù)中的首參(一般定義為self)。

類的專有方法:

  • __init__ : 構(gòu)造函數(shù),在生成對象時調(diào)用(對應(yīng)ES6中的constructor)

  • __del__ : 析構(gòu)函數(shù),釋放對象時使用

  • __repr__ : 打印,轉(zhuǎn)換

  • __setitem__ : 按照索引賦值

  • __getitem__: 按照索引獲取值

  • __len__: 獲得長度

  • __cmp__: 比較運(yùn)算

  • __call__: 函數(shù)調(diào)用

  • __add__: 加運(yùn)算

  • __sub__: 減運(yùn)算

  • __mul__: 乘運(yùn)算

  • __div__: 除運(yùn)算

  • __mod__: 求余運(yùn)算

  • __pow__: 稱方

包和模塊

Python中,包為大內(nèi)聚單位,當(dāng)然它只是抽象的,它可能是個文件夾或是其他whatever,他的意義就是更好地管理模塊的命名空間。

假設(shè)現(xiàn)在有個模塊的名稱是A.B, 那么他表示一個包A中的子模塊B。 就好像使用模塊的時候,你不用擔(dān)心不同模塊之間的全局變量相互影響一樣,采用package.moduleName這種形式也不用擔(dān)心不同庫之間的模塊重名的情況。

Python中以文件為模塊單位,模塊中又可以區(qū)分不同的類、方法、對象或任何其他數(shù)據(jù),和Node.js中的模塊大同小異。

核心語句:

  • import ...

  • from ... import ...

核心對象和模塊

  • File:對文件的操作

  • OS:處理文件和目錄

  • json:對json數(shù)據(jù)的處理

  • 時間:time、calendar

多線程

多線程類似于同時執(zhí)行多個不同程序,多線程運(yùn)行有很多優(yōu)點(diǎn)。

線程分為:

  • 內(nèi)核線程:由操作系統(tǒng)內(nèi)核創(chuàng)建和撤銷

  • 用戶線程:不需要內(nèi)核支持而在用戶程序中實(shí)現(xiàn)的線程

Python3中線程相關(guān)的兩個模塊:

  • _thread(原thread,已廢棄)

  • threading

一般可以使用函數(shù)或者用類來包裝線程對象。

以上是關(guān)于python基礎(chǔ)知識的整理的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!


名稱欄目:關(guān)于python基礎(chǔ)知識的整理-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://weahome.cn/article/dsocod.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部