4.1 資料型別前置知識
4.1.1 資料型別的概念
顧名思義,資料型別就是指資料的型別,計算機不像人,能夠很好的分辨資料型別,比如10086,計算機就不知道這個資料到底是字串還是數值,計算機在用這個資料進行計算時就會出現問題,
為了避免這種情況,需要對資料貼一個標簽,這個標簽就是型別,告訴計算機遇到這種資料應該怎么處理,
4.1.2 哈希
哈希(Hash),一般翻譯做散列、雜湊,是把任意長度的輸入通過散列演算法變換成固定長度的輸出,該輸出就是散列值,
這種轉換是一種壓縮映射,也就是散列值的空間通常遠小于輸入的空間,不同的輸入可能會散列成相同的輸出,所以不可能從散列值來確定唯一的輸入值,
簡單的說就是一種將任意長度的訊息壓縮到某一固定長度的訊息摘要的函式,
在Python學習中經常會遇到兩個概念,可哈希和不可哈希,其實可哈希就是指資料不可原地修改,而不可哈希就是指資料可原地修改,比如在Python中,字串資料型別就是可哈希的(不可變),而串列資料型別就是不可哈希的(可變),
4.1.2.1 hash(obj)
描述
hash函式回傳該物件的哈希值(如果它有的話),哈希值是整數,它們在字典查找元素時用來快速比較字典的鍵,
相同大小的數字變數有相同的哈希值(即使它們型別不同,如 1 和 1.0),
整數的哈希值就是其本身,
可變的資料型別在嘗試獲取哈希值時會報錯:unhashable,
示例
print(hash(2))
print(hash(2.0))
print(hash(2.1))
print(hash('hash'))
print(hash([1, 2]))
2
2
230584300921369602
-1167130528123277563
Traceback (most recent call last):
File "E:\studypy\tmp.py", line 6, in
print(hash([1, 2]))
TypeError: unhashable type: 'list'
4.1.3 Python常見資料型別
Python中比較重要且常用的資料型別有以下6種:
- Number(數字)
- String(字串)
- List(串列)
- Tuple(元組)
- Set(集合)
- Dictionary(字典)
Python3 的6個標準資料型別中,相關屬性如下表:
| 資料型別 | 可哈希 | 可迭代 | 序列 |
|---|---|---|---|
| 數字 | 可哈希 | 不可迭代 | NULL |
| 字串 | 可哈希 | 可迭代 | √ |
| 串列 | 不可哈希 | 可迭代 | √ |
| 元組 | 可哈希 | 可迭代 | √ |
| 集合 | 不可哈希 | 可迭代 | × |
| 字典 | 不可哈希 | 可迭代 | × |
接下來的章節,我們會對這些資料型別進行詳細介紹,
4.1.4 判斷資料型別
可以使用type函式和isinstance函式來判斷某個物件的型別,
4.1.4.1 type(obj)
描述
type函式用來回傳指定物件的型別,
示例
>>> type('1')
>>> type(1)
>>> type(1.1)
<class 'str'>
<class 'int'>
<class 'float'>
4.1.4.2 isinstance(object, classinfo)
描述
isinstance函式用來回傳某個物件是否是指定的物件型別,
示例
>>> isinstance(1, int)
>>> isinstance(1.1, str)
從自動化辦公到智能化辦公True
False
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/494148.html
標籤:Python
