python概念与术语,python之基础篇(四)
防偽碼:忘情公子著
本篇我們來(lái)說(shuō)說(shuō)python的內(nèi)置對(duì)象類型及其運(yùn)算。
python有許多的內(nèi)置類型,我們?yōu)槭裁匆褂脙?nèi)置類型呢?python編程時(shí)是盡量去使用自定義類型還是盡可能多的使用內(nèi)置類型呢?
內(nèi)置類型對(duì)python本身來(lái)講它的理解能力更好一點(diǎn),對(duì)其執(zhí)行時(shí)所能夠帶來(lái)的性能上也會(huì)更好一點(diǎn)。所以,除非內(nèi)置類型無(wú)法提供特殊對(duì)象處理時(shí),一般而言最好都用內(nèi)置類型。因?yàn)閮?nèi)置類型使得其內(nèi)置對(duì)象程序更容易編寫,另外,內(nèi)置類型、內(nèi)置對(duì)象是擴(kuò)展組件,內(nèi)置對(duì)象往往比自己開發(fā)的那種數(shù)據(jù)結(jié)構(gòu),在執(zhí)行時(shí)更有效率。
python對(duì)象的相關(guān)術(shù)語(yǔ):
python程序中保存的所有數(shù)據(jù)都是圍繞對(duì)象這個(gè)概念展開的:
程序中存儲(chǔ)的所有數(shù)據(jù)都是對(duì)象。
每個(gè)對(duì)象都有一個(gè)身份、一個(gè)類型和一個(gè)值。
例如,school="cheqiao"會(huì)以"cheqiao"創(chuàng)建一個(gè)字符串對(duì)象,其身份是指向它在內(nèi)存中所處位置的指針(其在內(nèi)存中的地址),而school就是引用這個(gè)具體位置的名稱。
對(duì)象的類型也稱對(duì)象的類別,用于描述對(duì)象的內(nèi)部表示及它支持的方法和操作。
創(chuàng)建特定類型的對(duì)象時(shí),有時(shí)也將該對(duì)象稱為該類型的實(shí)例。
實(shí)例被創(chuàng)建后,其身份和類型就不可改變
如果對(duì)象值是可修改的,則稱為可變對(duì)象;
如果對(duì)象值不可修改,則稱為不可變對(duì)象
如果某個(gè)對(duì)象包含對(duì)其它對(duì)象的引用,則將其稱為容器。
大多數(shù)對(duì)象都擁有大量特有的數(shù)據(jù)屬性和方法
屬性:與對(duì)象相關(guān)的值。在對(duì)象實(shí)例化時(shí),在對(duì)象內(nèi)部可以使用的變量的變量名稱就稱之為對(duì)象的屬性。
方法:被調(diào)用時(shí)將在對(duì)象上執(zhí)行某些操作的函數(shù)。
使用點(diǎn)(.)運(yùn)算符可以訪問(wèn)屬性和方法。
對(duì)于python而言,每一種數(shù)據(jù)類型都是由類來(lái)進(jìn)行定義的。所以在python中類和類型是不加區(qū)分來(lái)使用的,它們指的都是同一個(gè)意思。
類由屬性和方法組成:
屬性(內(nèi)置的數(shù)據(jù)):與對(duì)象相關(guān)的值。在對(duì)象實(shí)例化時(shí),在對(duì)象內(nèi)部可以使用的變量的變量名稱就稱之為對(duì)象的屬性。在對(duì)象(實(shí)例)初始化時(shí),由初始化過(guò)程來(lái)做賦值
方法:被調(diào)用時(shí)將在對(duì)象上執(zhí)行某些操作的函數(shù)。實(shí)例的調(diào)用接口,實(shí)例所屬類型所支持的操作
類必須要實(shí)例化成對(duì)象,而這些實(shí)例對(duì)象其內(nèi)部的數(shù)據(jù)不同,所以它們才稱為不同的實(shí)例。
對(duì)實(shí)例內(nèi)部的數(shù)據(jù)可以執(zhí)行某些類型的操作,這些操作只能是附加在這些實(shí)例上的操作,這些操作是由類在內(nèi)部定義的。
一個(gè)對(duì)象在內(nèi)存中存儲(chǔ),如果有變量名指向它,它就被引用了。
當(dāng)某一個(gè)對(duì)象不被引用或其引用技術(shù)為0時(shí),這個(gè)對(duì)象則變成了可被垃圾回收器回收的對(duì)象。
點(diǎn)號(hào)(.)運(yùn)算符:可以用來(lái)訪問(wèn)對(duì)象的屬性和方法。
屬性:數(shù)據(jù)
方法:操作。使用點(diǎn)號(hào)運(yùn)算符調(diào)用方法時(shí),必須在后面加上(),如list.pop()
可調(diào)用對(duì)象:使用callable()函數(shù)測(cè)試對(duì)象是否可調(diào)用。
對(duì)于屬性來(lái)說(shuō),通過(guò)點(diǎn)號(hào)運(yùn)算符來(lái)訪問(wèn)時(shí)返回一個(gè)數(shù)據(jù),若想顯示則要使用print語(yǔ)句;
對(duì)于方法來(lái)說(shuō),調(diào)用時(shí)則執(zhí)行對(duì)應(yīng)方法內(nèi)部的代碼。
使用內(nèi)置函數(shù)dir()來(lái)獲取對(duì)象支持的屬性和方法。
使用內(nèi)置函數(shù)help()來(lái)獲取某方法的具體使用幫助。
對(duì)象的身份與類型:
python內(nèi)置函數(shù)id()可返回一個(gè)對(duì)象的身份,即該對(duì)象在內(nèi)存中的位置
is運(yùn)算符用于比較兩個(gè)對(duì)象的身份;
type()用于返回一個(gè)對(duì)象的類型;
對(duì)象類型本身也是一個(gè)對(duì)象,稱為對(duì)象的類
該對(duì)象的定義是唯一的,且對(duì)于某類型的所有實(shí)例都是相同的
所有類型對(duì)象都有一個(gè)指定的名稱,可用于執(zhí)行類型檢查,如list、dictif?a?is?b:
statements
if?a?==?b:
statements
if?type(a)?is?type(b):
statements
python核心數(shù)據(jù)類型:
對(duì)象類型例子
數(shù)字3077,3.14,300000
字符串'baidu.com',"spam"
列表['one','two','three']
字典{'course':'linux','tutor':'baidu','age':42}
元組(32,'spam','eggs')
文件myFile=open('/tmp/tfile','r')
集合set('abc'),{'a','b','c'}
其它類型類類型、None、布爾型
編程單元類型函數(shù)、模塊、類
與實(shí)現(xiàn)相關(guān)的類型編譯的代碼堆棧跟蹤
python是一個(gè)強(qiáng)類型的語(yǔ)言,很多時(shí)候我們需要顯式地對(duì)類型進(jìn)行轉(zhuǎn)換。
比如一個(gè)數(shù)字和一個(gè)字母相運(yùn)算,這是個(gè)拋出異常的。因?yàn)榇藘烧卟皇峭环N類型,在python中不同類型之間是無(wú)法進(jìn)行運(yùn)算的。In?[1]:?a?=?'123'
In?[2]:?type(a)
Out[2]:?str
In?[3]:?print?1?+?a
---------------------------------------------------------------------------
TypeError?????????????????????????????????Traceback?(most?recent?call?last)
?in?()
---->?1?print?1?+?a
TypeError:?unsupported?operand?type(s)?for?+:?'int'?and?'str'
此時(shí)如果我們將類型進(jìn)行顯式的轉(zhuǎn)換一下,就可以完成運(yùn)算了。In?[1]:?a?=?'123'
In?[2]:?type(a)
Out[2]:?str
In?[3]:?print?1?+?a
---------------------------------------------------------------------------
TypeError?????????????????????????????????Traceback?(most?recent?call?last)
?in?()
---->?1?print?1?+?a
TypeError:?unsupported?operand?type(s)?for?+:?'int'?and?'str'
In?[4]:?b?=?int(a)
In?[5]:?type(b)
Out[5]:?int
In?[6]:?print?1?+?b
124
python中類型顯式轉(zhuǎn)換常用的內(nèi)置函數(shù)有以下這些:
str(),repr()或format():用于將非字符串轉(zhuǎn)換成字符串
str()的結(jié)果與print的結(jié)果一樣;
repr()表示某個(gè)對(duì)象的精確值;
format()利用特定格式將其轉(zhuǎn)換成字符串
int():轉(zhuǎn)換成整數(shù)
float():轉(zhuǎn)換成浮點(diǎn)數(shù)
list(s):將字符串s轉(zhuǎn)換成列表
tuple(s):將字符串s轉(zhuǎn)換成元組
set(s):將字符串s轉(zhuǎn)換成集合
frozenset(s):將字符串s轉(zhuǎn)換成不可變集合
dict(d):根據(jù)指定的鍵值對(duì)創(chuàng)建字典,這里的d必須是(key,value)的元組序列,如d = (('a',1),('b',2),('c',3))或d = [('a',1),('b',2),('c',3)]
ord(x):將字符x轉(zhuǎn)換成整數(shù)值
hex(x):將整數(shù)x轉(zhuǎn)換成十六進(jìn)制字符串
bin(x):將整數(shù)x轉(zhuǎn)換成二進(jìn)制字符串
oct(x):將整數(shù)x轉(zhuǎn)換成八進(jìn)制字符串
總結(jié)
以上是生活随笔為你收集整理的python概念与术语,python之基础篇(四)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python如何在官网下载1005无标题
- 下一篇: python培训比较好的机构有哪些-上海