『無為則無心』Python基礎 — 8、Python中的資料型別(數值、布林、字串)

繁華似錦Fighting發表於2021-06-26

1、資料型別介紹

(1)什麼是資料型別

在生活中,我們日常使用的資料有大有小,有整數也有小數,同時也會使用字母或者漢字表示特定含義。而在每種程式語言裡都會有一個叫資料型別的名詞,資料型別就是對常用的各種資料格式進行了明確的劃分,以應對不同的業務需求,並在使用時按經驗將不同的變數定義不同的型別的資料。

(2)Python3中有七個標準的資料型別

  • 數值型(Number
  • 布林型(Bool
  • 字串(String
  • 集合(Set
  • 列表(List
  • 元組(Tuple
  • 字典(Dict

如下圖所示:

image

(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簡寫表示布林型別。一個布林值只有TrueFalse兩種值,要麼是True表示真,要麼是False表示假。
  • 布林值主要用來做邏輯判斷。
  • TrueFalse就是字面量(常量),不用加引號,注意首字母大寫。

示例

# 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 型別,且NoneNoneType型別的唯一值。也就是說,我們不能再建立其它 NoneType 型別的變數。
  • 可以將None賦值給任何變數,也可以給None值變數賦值
  • None不支援任何運算也沒有任何內建方法,如沒有像lensize等屬性,要判斷一個變數是否為None,直接使用如下方式:
    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中最基礎的資料型別,一定要好好掌握。關於集合、列表、元組、字典這幾個資料型別,後面會逐一單個的詳解介紹。

相關文章