python的這些細節知識點你注意了嗎?--內置類

目錄

  • 內置類的可變類和不可變類
  • bool()創建bool類型
  • 整形類構造函數的第二個參數(控制轉換的進制)
  • 6e2 和 2. 都是浮點數
  • python序列類型(list,tuple,str)
  • 集合set的兩個特點
  • {}代表一個空的字典而非集合

內置類的可變類和不可變類

下面內容基於python3.6.8,python是一門面向對象的語言,類class是所有類型的基礎,python中的類型有int,float,str,bool,list,set,tuple,dict,frozenset,需要注意的是,這些類被分爲可變類和不可變類。
如果類的每一個對象在實例化時有一個固定的值,並且之後也不可以改變(就像int類型創建出來之後,它的值不可變,在進行賦值運算a = a + 1時,是創建了新的對象並把它賦值給a,值是a+1),它們就是不可變類,有int,float,str,bool,tuple,frozenset。
與之對應的是可變類,list,set,dict。

bool()創建bool類型

bool類用於處理邏輯布爾值,該類表示的實例只有True和False兩個值。
python允許採用bool(foo)的語法用非布爾值foo創建一個布爾類型。就數字而言,0是False,其他皆爲True。
對於序列(list,str,tuple)和其他容器類型,如果是空爲False,非空爲True。
這種方式的重要應用可以讓非布爾值變爲控制結構的條件。

整形類構造函數的第二個參數(控制轉換的進制)

python中的整形不像java和c++中的(int,short,long)一樣,它表示任意長度的整形,python會根據數值大小自動選擇內部的表示方式。
構造函數int()默認返回0,它的參數如果是int或者float,就會選擇數字的整數部分,int(12.3)是12,int(-9.8)是-9
它的參數也可以是字符串,但是必須是內容爲整形的字符串,如下:
在這裏插入圖片描述
當它的第一個參數爲字符串時,它的第二個參數可以設置轉換的進制,如下:
在這裏插入圖片描述
它的第一個參數必須爲字符串,才能寫第二個參數(2,8,10,16),否則報錯。

6e2 和 2. 都是浮點數

2.是float的一種簡寫,相當於浮點數2.0。e在python中表示科學計數法,下面是使用例子:
6e23就是6的23次方,e後面的是10的多少次方,可以是負數,表示開根:
在這裏插入圖片描述

6e2返回的是浮點數,6*10**2返回的是整數:
在這裏插入圖片描述
最後float()默認返回0.0:
在這裏插入圖片描述

python序列類型(list,tuple,str)

list,tuple,str是python中的序列類型,代表許多值的集合,集合中值的順序很重要。
list類是最常見的,它可以存儲任意對象包括None,在python中它是極其重要的容器,[]是一個空列表。
list()構造器可以接收任何可迭代的參數(注意參數的數量最多是一個):
在這裏插入圖片描述
tuple類型是不可變的列表,()是一個空元組,在這裏如果要表示只有一個元素的元組,你得寫 (12,),如果你忽略了12後面的逗號,那麼(12)只是一個數值表達式:
在這裏插入圖片描述

python的str類,它是基於unicode國際字符集,字符串可以是單引號或者雙引號。
python支持’’’ this is a string ‘’’ 或者“”“ this is a string too ”“”,這樣的三重引號,它可以自動換行,可讀性更高。

集合set的兩個特點

python的set類是一個數學概念–集合,集合中沒有重複的元素,這些元素沒有內在聯繫(沒有順序)。
除此之外,python中集合的限制還有兩個,其一:集合不保存有任何順序的元素集,其二:只有不可變類型的實例纔可以添加到集合中:
在這裏插入圖片描述
frozenset是集合不可變形式。

{}代表一個空的字典而非集合

因爲歷史原因,{}代表一個空的字典而不是集合,集合可以由set()構造器創建。
首先,dict實例由一個個鍵值對構成,你可以將字典看作是集合的特殊形式,字典的鍵首先要滿足集合的規則,所以鍵必須是不可變類型:
在這裏插入圖片描述

發佈了24 篇原創文章 · 獲贊 120 · 訪問量 7468
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章