[Python初學者] Data Types 資料類型

資料類型在Python中很重要,不同資料類型的數據,執行方式會不一樣。因此,當需要做演算時,必須先瞭解資料的類型。

資料類型有哪些呢?

 名稱類型
1文字(Text Type)字串(str)
2數值(Numeric Types)整數(int)
浮點數(float)
複數(complex)
3序列(Sequence Types)表(list)
定值表(tuple)
範圍(range)
4映射(Mapping Type)字典(dict)
5集合(Set Types)可變集合(set)
不可變集合(frozenset)
6布林(Boolean Type)布林(bool)
7二進制(Binary Types)不可變字節(bytes)
可變字節(bytearray)
記憶體視圖(memoryview)
Python Data Types 資料類型

註:因 frozenset、bytes、bytearray、memoryview 比較少用,所以檸檬媽就不在此篇贅言了。

 

1. 文字(Text Type)

  • 字串(str):

    此為 string ,即一串文字字元。為不可變(immutable)類型。

x = "Hello Oceane"

又或者

x = str("a1")
print(x)
a1

# str(“”):若str 後面小括弧內不是數字,則需要加「雙引號」,代表字串。x = str(“a1”),則 x 為 ‘ a1 ‘。

又或者

y = str(5)
print(y)
5

# y = str( 5 ),則 y 為 ‘ 5 ‘。

又或者

z = str(6.0)
print(z)
6.0

# z = str( 6.0 ),則 z 為 ‘ 6.0 ‘。

 

更多 String 內容,請參考:[Python初學者] 10種 Strings 字串用法 https://myoceane.fr/index.php/python-strings/

 

2. 數值(Numeric Types)

  • 整數(int):

    完整的數字正數或是負數。沒有小數點且長度不限。

x = 10

 

又或者

x = int(5)
print(x)
5

# x = int(5),則 x 為 5 。

又或者

y = int(3.8)
print(y)
3

# y = int(3.8),則 x 為 3(小數點後無條件捨去) 。

又或者

z = int("6")
print(z)
6

# z = int( “6” ),即使加了雙引號,z 結果仍為 6。

 

  • 浮點數(float):

    包含小數點正數或是負數

x = 10.5

 

又或者

x = float(5)
print(x)
5.0

# x = float(5),則 x 為 5.0(浮點數會在整數後加小數點一位)。

又或者

y = float(3.8)
print(y)
3.8

# y = float(3.8),則 x 為 3.8 。

又或者

z = float("6")
print(z)
6.0

# z = int( “6” ),即使加了雙引號,z 結果為 6.0。

 

  • 複數(complex):

    用 ” j ” 作為虛部編號 。 j 代表數字:根號負 1

x = 3.15j
x*x
(-9.9225+0j)

例如:x2 = ( 3.15j )2 =  ( 3,15 )2 x ( 根號負1 )2 = 9.9225 x -1 = – 9.9225

 

3. 序列(Sequence Types)

  • 表(list):

    利用方括號( [ ] )和逗號( , )建構list。為可變(mutable)類型。常用來做相同類型(同質)元素的序列集合。表可以是數字、文字等等。

x = ["notre", "petite", "Oceane", "Oceane", "Oceane"]
print(x)
['notre', 'petite', 'Oceane', 'Oceane', 'Oceane']

# x 可以為文字

又或者

x = [1, 2, 3, 4, 5, 6, 6, 6, 6]
sum(x)
39

# x 為數字,可以做運算。例如將 x 裡面的數值加總,得到結果 39。

 

  • 定值表(tuple):

    利用小括弧() ),為不可變(immutable)類型。常用來做不同類型(異質)元素的序列集合。
    只能用 1) 計數 count2) 索引 index 功能。

 
例一:

用於 1) 計數 count

t = (0, 1, 2, 1, 100, 1, 1, 1, 1, 1, 1)
t.count(1)
8

# 計算 t ( tuple ) 裡面有多少個數字 1:共有 8 個。

 

用於 2) 索引 index

t.index(100)
4

# 查找 t (tuple) 裡面 100 位於哪個位置:第 4 個位置。

 
例二:
t1 = ("Oceane", 1, "Paris", "France") 
t2 = ("Natalie", 22, "Taipei", "Taiwan")
for i in [t1, t2]: 
	print(i[0])
Oceane 
Natalie

如:t1 = (“Oceane”, 1, “Paris”, “France”),其位置為: (位置0, 位置1, 位置2, 位置3)
# 用 for 做迴圈(需要以 list 的中括號呈現),
用 i 帶 t1  ->  print 結果 i [0] ( 位置0 ):結果為 Oceane 
用 i 帶 t2  ->  print 結果 i [0] ( 位置0 ):結果為 Natalie 

又如:

for i in [t1, t2]: 
	print(i[2])
Paris
Taipei

# 用 for 做迴圈,
用 i 帶 t1  ->  print 結果 i [2] ( 位置2 ):結果為 Paris 
用 i 帶 t2  ->  print 結果 i [2] ( 位置2 ):結果為 Taipei 

 

  • 範圍(range):

    是一個數字的序列(a sequence of numbers),為不可變(immutable)類型。同常用在 for 循環中。從0開始至填入的數值為止。

例一:r = range(10)
r = range(10)
for i in r:
	print(i)
0
1
2
3
4
5
6
7
8
9

# range(10):代表從 0 開始至 10 之前的數字:0、1、2、3、4、5、6、7、8、9。

 
例二:r = range(start, stop),如 x = range(1, 5)
r = range(1,5)
for i in r:
	print(i)
1
2
3
4

# range(1, 5) :表示從 1 開始到 5 之前的所有數字:1、2、3、4。

 
例三:r = range(start, stop, step),如 r = range(1, 50, 10)
r = range(1, 50, 10)
for i in r:
	print(i)
1
11
21
31
41

# range(1, 50, 10) 表示從 1 開始到 50 之前間隔 10 的所有數字:1、11、21、31、41。

 

4. 映射(Mapping Type)

  • 字典(dict):

    利用大括弧{} ),用來建立 KeyValue 之間的關係。

person1 = {"name" : "Oceane", "age" : 1, "city" : "Paris", "country" : "France"}
person2 = {"age" : 22, "name" : "Natalie", "country" : "Taiwan", "city" : "Taipei"}
person1["name"]
'Oceane'

# 例如建立字典 person 1 和 person 2 的基本資料。因為有給 Key 和 Value,因此順序不同也可以。在查找 person 1 的 “name”,則得到 Oceane。

 

print(person1["country"])
print(person2["country"])
France
Taiwan

# 也可以 print 兩個 Key 查找他們的 Value。

 

for i in [person1, person2]:
    print(i["country"])
France
Taiwan

# 又或者,假如都要呈現 “country” 的結果,則可以使用 for 做迴圈。

用 i 帶 person1  ->  print 結果 i [“country”] :結果為 France 
用 i 帶 person2  ->  print 結果 i [“country”]:結果為 Taiwan 

 

5. 集合(Set Type)

  • 可變集合(set):

    利用大括弧{} )。和 List (資料可以重複)概念相似,只是 set 裡面的資料不可以重複

    • 如 List :利用中括弧( [] ),資料可以重複
      x = [“notre”, “petite”, “Oceane”, “Oceane”, “Oceane”]
      結果為:[‘notre’, ‘petite’, ‘Oceane’, ‘Oceane’, ‘Oceane’]
    • 如 set :利用大括弧( {} ),資料不能重複
      x = {“notre”, “petite”, “Oceane”, “Oceane”, “Oceane”}。
      結果為:{‘notre’, ‘petite’, ‘Oceane’}
x = {"notre", "petite", "Oceane", "Oceane", "Oceane"}
print(x)
{'notre', 'petite', 'Oceane'}

# x 可以為文字,而重複的 Oceane 則被捨棄。

 

又或者:

x = {1, 2, 3, 4, 5, 6, 6, 6, 6}
sum(x)
21
print(x)
{1, 2, 3, 4, 5, 6}

# x 為一串數字,加總之後,重複的 6 被捨棄,因此加總結果為 21 。將 x print 出來,則可以發現此結果為 1 + 2 + 3 + 4 + 5 + 6 = 21。即重複的 6 不在加總範圍之內。

 

6. 布林(Boolean Type)

即 True 和 False。

a = 1 > 2
print(a)
False

# a 為 1 > 2,這件事為假,因此結果出現 False。

 

又或者:

a = "Natalie" == "Oceane"
print(a)
False

# a 為 Natalie 等於(用兩個 “等於” 代表) Oceane,這件事為假,因此結果出現 False。

 

又或者:

a = "Natalie" != "Oceane"
print(a)
True

# a 為 Natalie 不等於(用ㄧ個 “驚嘆號” 和 “等於” 代表) Oceane,這件事為真,因此結果出現 True。

參考出處:https://www.w3schools.com/python/python_datatypes.asp