国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Python基礎(2)--對象類型

2019-11-14 17:47:31
字體:
來源:轉載
供稿:網友

Python使用對象模型來存儲數據。構造任何類型的值都是一個對象

所有的Python對象都擁有三個特性:身份、類型、值

身份:

每一個對象都有一個唯一的身份來標志自己,任何對象的身份可以使用內建函數id()來得到。這個值可以被認為是該對象的內存地址

類型:

對象的類型決定了該對象可以保存什么類型的值,可以進行怎樣的操作,以及遵循什么樣的規則,可以使用內建函數type()查看Python對象的類型:

>>> type([1,2])<type 'list'>>>> type(24)<type 'int'>>>> type({1,2,3})<type 'set'>>>> type('a string')<type 'str'>

type()返回的是對象而不是簡單的字符串。

值:對象表示的數據項

以上的三個特性在對象創建的時候就被賦值,除此之外,其他兩個特性都是只讀的

標準類型/基礎數據類型:

數字、整型、布爾型、長整形、浮點型、復數型、字符串、列表、元組、字典

其他內建類型:

類型、Null對象(None)、文件、集合/固定集合、函數/方法、模塊、類

None,Python的Null對象

Python有一個特殊的類型,稱為Null對象或者NoneType,只有一個值:None,它不支持任何運算也沒有任何內建的方法,類似于C語言的void,None類型的值

和C中的Null值非常相似

None沒有什么有用的屬性,它的布爾值總是False

布爾值

所有標準對象均可以用于布爾測試,同類型的對象之間可以比較大小。每一個對象天生具有布爾True或false值

空對象、值為0的任意數字或Null對象None的布爾值都是False

下列對象的布爾值都是False:

  • None
  • False(布爾類型)
  • 所有的值為0的數
  • 0(整型)
  • (浮點型)
  • 0L(長整型)
  • 0.0+0.0j(復數)
  • “”(空字符串)
  • [](空列表)
  • ()(空元組)
  • {}(空字典)

 值不是上面列出來的任何值的對象的布爾值都是True

標準類型運算符:

比較運算符用來判斷同類型對象是否相等,所有的內建類型均支持比較運算,比較運算返回布爾值True或False

>>> 2==2True>>> 2.34<=3.44True>>> 'abc'=='xyz'False>>> 'xyz'>'abc'True>>> 'xyz'<'abc'False>>> [3,'abc']==['abc',3]False>>> [3,'abc']==[3,'abc']True

多個比較操作可以在同一行上進行,求值順序為從左到右.例如:

>>> 3<4<5 #等價于 (3<4)and(4<5)True>>> 4>3==3 #等價于(4>3)and(3==3)True>>> 4<3<5!=2<7False

標準類型值比較運算符:

對象身份比較

每個對象都天生具有一個計數器,記錄它自己的引用次數。這個數目表示有多少個變量指向該對象

Python提供了is和is not運算符來測試兩個變量是否指向同一個對象

a is b  等價于  id(a)==id(b)

>>> foo2=foo1>>> foo1 is foo2True>>> foo1 is not foo2False>>> id(foo1)==id(foo2)True>>> 

布爾類型

布爾邏輯運算符and,or,not都是Python關鍵字,這些運算符的優先級按從高到低的順序如下:

標準類型布爾運算符:

>>> x,y=3.1415926,-1024>>> x<5.0True>>> not(x<5.0)False>>> (x<5.0) or (y>2.71828)True>>> (x<5.0) and (y>2.71828)False>>> not(x is y)True

標準類型內建函數

Python提供了一些內建函數用于這些基本對象類型:

cmp(), rePR(), str(), type()和等同于repr()函數的單反引號('')運算符

type()接受一個對象作為參數,并返回它的類型。它的返回值是一個類型對象。

>>> type(4)<type 'int'>>>> type('hello!')<type 'str'>>>> type(type(4))<type 'type'>

cmp()用于比較兩個對象obj1和obj2,如果obj1<obj2返回-1,如果obj1>obj2返回1,如果obj1==obj2返回0,行為類似于C中的strcmp()函數,比較是在對象之間進行的

>>> a,b=-4,12>>> cmp(a,b)-1>>> cmp(b,a)1>>> b=-4>>> cmp(a,b)0>>> a,b='abc','xyz'>>> cmp(a,b)-1>>> cmp(b,a)1>>> b='abc'>>> cmp(a,b)0

str()和repr()(及''運算符)

內建函數str()和repr()或反引號運算符('')可以方便的以字符串的方式獲得對象的內容、類型、數值屬性等信息。

str()函數得到的字符串可讀性好,而repr()函數得到的字符串通常可以用來重新獲得該對象

>>> str(4.53-2j)'(4.53-2j)'>>> str(1)'1'>>> str(2e10)'20000000000.0'>>> str([0,5,9,9])'[0, 5, 9, 9]'>>> repr([0,5,9,9])'[0, 5, 9, 9]'>>> '[0,5,9,9]''[0,5,9,9]'

str()和repr()和''運算在特性和功能方面都非常的相似,repr()和''做的事情完全一樣,返回的是一個對象的官方字符串表示,可以通過求值運算(使用eval()內建函數)重新得到該對象,但是str()函數則有所不同,它可以生成一個對象的可讀性好的字符串表示,返回結果無法用于eval()求值,但是很適合用于print語句輸出。

標準類型運算符和內建函數


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 静安区| 天台县| 广饶县| 元谋县| 金坛市| 武汉市| 沧州市| 遵义县| 红桥区| 海丰县| 平陆县| 南木林县| 东山县| 松滋市| 邳州市| 渑池县| 南乐县| 珲春市| 盐城市| 七台河市| 调兵山市| 尖扎县| 北流市| 宜兴市| 将乐县| 措勤县| 保定市| 巴彦淖尔市| 金堂县| 广灵县| 库尔勒市| 台东市| 泗阳县| 曲周县| 灯塔市| 肇东市| 桃园县| 彭山县| 邯郸市| 五大连池市| 汉中市|