1、資料型別介紹
(1)什麼是資料型別
在生活中,我們日常使用的資料有大有小,有整數也有小數,同時也會使用字母或者漢字表示特定含義。而在每種程式語言裡都會有一個叫資料型別的名詞,資料型別就是對常用的各種資料格式進行了明確的劃分,以應對不同的業務需求,並在使用時按經驗將不同的變數定義不同的型別的資料。
(2)Python3中有七個標準的資料型別
- 數值型(
Number
) - 布林型(
Bool
) - 字串(
String
) - 集合(
Set
) - 列表(
List
) - 元組(
Tuple
) - 字典(
Dict
)
如下圖所示:
(3)Python3中標準資料型別又可分為兩大類
- 不可變資料型別(4個):當該資料型別對應變數的值發生了改變,那麼它對應的記憶體地址也會發生改變,對於這種資料型別,就稱不可變資料型別。
Number
(數值)Bool
(布林值)String
(字串)Tuple
(元組)
- 可變資料(3 個):當該資料型別對應變數的值發生了改變,那麼它對應的記憶體地址不發生改變,對於這種資料型別,就稱可變資料型別。
List
(列表)Dictionary
(字典)Set
(集合)
總結:不可變資料型別更改後,地址發生改變;可變資料型別的更改,地址不發生改變。
提示:本篇文章我們主要介紹不可變資料型別中的數值、布林值、字串。其他的資料型別,之後逐個單獨說明。
2、數值型(Number)
數字型(Number)是不可改變的資料型別,如果改變了數值型變數的值,將重新分配記憶體空間,讓變數重新引用一個新的物件。(這點和 Java 的字串差不多)
(1)Python 支援三種不同的數值型別
- 整型(
int
):通常被稱為是整型或整數,正負數都可以。
Python3 整型是沒有大小限制的,可以當作 Long 型別使用,所以 Python3 沒有 Python2 的 Long 型別。
如果數字的長度過大,可以使用下劃線作為分隔符。
10進位制的數字不能以0開頭。 - 浮點型(
float
):浮點型由整數部分與小數部分組成(就是小數)。
浮點型別不精確儲存。
浮點型可以支援科學計數法表示。 - 複數(
complex
):複數由實數部分和虛數部分構成,具體以後在說明。
(2)示例
# 1、定義int型別資料
a = 10
b = -20
# 2、Python3整型是沒有大小限制的
# 輸出結果不會報錯
# 結果:999999999999999999999999
c = 999999999999999999999999
print(c)
# 3、如果數字的長度過大,可以使用下劃線作為分隔符
# 輸出結果為123456789
d = 123_456_789
print(d)
"""
4、10進位制的數字不能以0開頭
如下面e會報錯:
SyntaxError: invalid token(語法錯誤)。
"""
e = 0123
print(e)
'''
5、其他進位制的整數定義
只要是數字列印時一定是以十進位制的形式顯示的。
'''
# 二進位制 0b開頭
f = 0b10 # 二進位制的10
# 八進位制 0o開頭
g = 0o10
# 十六進位制 0x開頭
h = 0x10
# 6、也可以通過運算子來對數字進行運算,
# 並且可以保證整數運算的精確
i = -100
i = i + 3
# 7、浮點數(小數),在Python中所有的小數都是float型別
j = 1.23
j = 4.56
# 8、對浮點數進行運算時,可能會得到一個不精確的結果
k = 0.1 + 0.2
print(k) # 0.30000000000000004
3、布林型(bool)
- 布林值全稱
Boolean
,在Python中使用bool
簡寫表示布林型別。一個布林值只有True
、False
兩種值,要麼是True
表示真,要麼是False
表示假。 - 布林值主要用來做邏輯判斷。
True
和False
就是字面量(常量),不用加引號,注意首字母大寫。
示例:
# 1、定義布林值(bool)變數
a = True
b = False
print('a =',a) # a = True
print('b =',b) # b = False
# 2、布林值實際上屬於整型子類,
# True就相當於1,False就相當於0
print(1 + True) # 2
print(1 + False) # 1
# 3、可以通過布林運算計算
c = 7 < 9
d = 7 > 8
print('c =',c) # c = True
print('d =',d) # d = False
# 4、布林值經常用在條件判斷中
if age >= 18:
print('adult')
else:
print('teenager')
4、None(空值)
(1)None值的含義
空值是Python裡一個特殊的值,用None
表示沒有值,不存在。None
不能理解為0
,因為0
是有意義的,同理也不能理解成空字串,而None
是一個特殊的空值,(N
必須大寫)。
在Python中是沒有Java中NULL
值,但相近意義於Java中NULL
值。
# None(空值)用來表示不存在
a = None
print(a)
(2)關於None的注意事項
None
在 Python 直譯器啟動時自動建立, 直譯器退出時銷燬。None
和任何其他的資料型別比較永遠返回False>>> None == 0 False >>> None == ' ' False >>> None == False False >>> None == None True
- 上也證明了
None
與0、空列表、空字串不一樣。 None
它屬於NoneType
型別,且None
是NoneType
型別的唯一值。也就是說,我們不能再建立其它NoneType
型別的變數。- 可以將
None
賦值給任何變數,也可以給None
值變數賦值 None
不支援任何運算也沒有任何內建方法,如沒有像len
、size
等屬性,要判斷一個變數是否為Non
e,直接使用如下方式:a = None if a is None: print("hello python") pass
- 對於所有沒有
return
語句的函式定義,Python 都會在末尾加上return None
。
None相對來說用的不多,主要是在物件中使用,我們知道表示不存在就可以。
5、常量
所謂常量就是值不能變的變數,比如常用的數學常數π
就是一個常量。在Python中,一般通過約定俗成的變數名全大寫的形式表示這是一個常量。
PI = 3.14159265359
但事實上PI
仍然是一個變數,Python根本沒有任何機制保證PI
不會被改變,所以,用全部大寫的變數名錶示常量只是一個習慣上的用法,如果你一定要改變變數PI
的值,也沒人能攔住你。
6、字串(String)
(1)字串型別說明
- 1、在Python中使用
str
簡寫表示字串型別。 - 2、字串用來表示一段文字資訊,字串是程式中使用的最多的資料型別。
- 3、字串的內容幾乎可以包含任何字元,英文字元也行,中文字元也行。
- 4、在Python中字串需要使用引號引起來,
' '
單引號和" "
雙引號都可以。 - 5、python中字串是不可變的,一旦宣告,不能改變。(同數值型)
(2)示例
# 1、在Python中字串需要使用引號引起來
# 單引號和雙引號都可以。
a = 'hello'
b = "python"
# s = 'hello" 引號不能混合使用
# 如果混合使用會報錯,如下:
# SyntaxError: EOL while scanning string literal
"""
# 2、字串變數必須使用引號引起來,不使用不是字串
d = abc
Python直譯器會認為abc是一個abc名稱的變數,
在Python執行程式的時候,
如果之前沒有定義過abc這個變數,
則會報出NameError錯誤。
"""
"""
# 3、相同的引號之間不能巢狀
也就是雙引號裡邊不能在寫雙引號,單引號裡邊不能在單雙引號。
e = "子曰:"學而時習之,樂呵樂呵!""
而不同的引號之間是可以進行巢狀的,如下:
"""
f = '子曰:"學而時習之,樂呵樂呵!"'
"""
# 4、單引號和雙引號不能跨行使用,跨行必須使用\進行換行。
如下g的執行結果為:
鋤禾日當午,汗滴禾下土,誰知盤中餐,粒粒皆辛苦。
在一行進行輸出。
"""
g = '鋤禾日當午,\
汗滴禾下土,\
誰知盤中餐,\
粒粒皆辛苦。'
"""
# 5、長字串
使用一對三重引號來表示一個長字串,如'''和\"\"\"。
三重引號內可以自動換行,並且會保留字串中的格式。
如下g的執行結果為:
鋤禾日當午,
汗滴禾下土,
誰知盤中餐,
粒粒皆辛苦。
"""
h = '''鋤禾日當午,
汗滴禾下土,
誰知盤中餐,
粒粒皆辛苦。'''
"""
# 6、字串的複製
就是將字串和數字相乘,乘以幾表示複製幾次。
* 在Pyhton語言中表示乘法。
所以如果將字串和數字相乘,則直譯器會將字串重複指定的次數並返回。
"""
# 輸出結果:abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.
a = 'abc.'
a = a * 10
print(a)
提示:以上就是Python中最基礎的資料型別,一定要好好掌握。關於集合、列表、元組、字典這幾個資料型別,後面會逐一單個的詳解介紹。