『無為則無心』Python基礎 — 8、Python中的數據類型(數值、布爾、字符串)

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中最基礎的數據類型,一定要好好掌握。關於集合、列表、元組、字典這幾個數據類型,後面會逐一單個的詳解介紹。