五、Python 基礎數據類型

Python 基礎數據類型

1、變量

  1)Python 中的變量不需要聲明。每個變量在使用前都必須賦值,變量賦值以後該變量纔會被創建。

  2)在 Python 中,變量就是變量,它沒有類型,我們所說的"類型"是變量所指的內存中對象的類型。

  3)等號(=)用來給變量賦值

  4)等號(=)運算符左邊是一個變量名,等號(=)運算符右邊是存儲在變量中的值

counter = 100  # 整型變量
miles = 1000.0  # 浮點型變量
name = "runoob"  # 字符串

print(counter)
print(miles)
print(name)

 

2、多個變量賦值

 Python允許你同時爲多個變量賦值,並且類型可以不同

# 2、多個變量賦值
# Python允許你同時爲多個變量賦值,並且類型可以不同
print('2、多個變量賦值')
#以上實例,創建一個整型對象,值爲 1,從後向前賦值,三個變量被賦予相同的數值
a=b=c=1
#兩個整型對象 3 和 4 的分配給變量 e 和 d,字符串對象 "test" 分配給變量 f
e, d, f = 3, 4, "test"
print(str(a)+','+str(b)+','+str(c))
print(str(e)+','+str(d)+','+f)

3、標準數據類型 

Number(數字)

String(字符串)

List(列表)

Tuple(元組)

Set(集合)

Dictionary(字典)

 

Python3 的六個標準數據類型中:

    不可變數據(3 個):Number(數字)、String(字符串)、Tuple(元組);

    可變數據(3 個):List(列表)、Dictionary(字典)、Set(集合)。

 

 

4.1、Number(數字) 

   1)Python3 支持 int、float、bool、complex(複數)。

    2)在Python 3裏,只有一種整數類型 int,表示爲長整型,沒有 python2 中的 Long。 像大多數語言一樣,數值類型的賦值和計算都是很直觀的。

    3)內置的 type() 函數可以用來查詢變量所指的對象類型。

    4)此外還可以用 isinstance 來判斷 isinstance 和 type 的區別在於: type()不會認爲子類是一種父類類型 isinstance()會認爲子類是一種父類類型

 

a, b, c, d = 20, 5.5, True, 4+3j
print(type(a), type(b), type(c), type(d))
print('a是否是整形? '+str(isinstance(a, int)))
'''
使用del語句刪除一些對象引用,刪除引用後,後面該對象無法使用
del語句的語法是
del var1[,var2[,var3[....,varN]]]
'''
var1 = 10
var2 = 'abc'
del var1,var2

'''
數值運算
注意:
  1、Python可以同時爲多個變量賦值,如a, b = 1, 2。
  2、一個變量可以通過賦值指向不同類型的對象。
  3、數值的除法包含兩個運算符:/ 返回一個浮點數,// 返回一個整數。
  4、在混合計算時,Python會把整型轉換成爲浮點數。
'''
print(5 + 4)    # 加法
print(4.3 - 2)  # 減法
print(3 * 7)    # 乘法
print(2 / 4)    # 除法,得到一個浮點數
print(2 // 4)   # 取整除 - 向下取接近除數的整數
print(17 % 3)   # 取餘
print(2 ** 5)   # 乘方

 

 4.2 字符串

1) Python中的字符串用單引號 ' 或雙引號 " 括起來,同時使用反斜槓 \ 轉義特殊字符 .

   如果你不想讓反斜槓發生轉義,可以在字符串前面添加一個 r,表示原始字符串:

2) 字符串的截取的語法格式如下

    變量[頭下標:尾下標]

    索引值以 0 爲開始值,-1 爲從末尾的開始位置

stra = 'python'
print(stra)  # 輸出字符串
print('\'',str,'\'的長度爲:',len(stra))  # 輸出字符串
print(stra[0:-1])  # 輸出第一個到倒數第二個的所有字符
print(stra[0])     # 輸出字符串第一個字符
print(stra[2:5])   # 輸出從第三個開始到第五個的字符
print(stra[2:])    # 輸出從第三個開始的後的所有字符
print(stra * 2)    # 輸出字符串兩次,也可以寫成 print (2 * str)
print(stra + "Test")  # 連接字符串
print('中文'.encode('utf-8'))  #中文轉utf-8編碼
print ("我叫 %s 今年 %d 歲!" % ('小明', 10))
name = 'Jame'
print(f'Hello {name}')   # 替換變量
print(f'我想要的數字是:{1+2}')         # 使用表達式

 

4.3 List(列表) 

  1) Python 中使用最頻繁的數據類型;

  2)大多數集合類的數據結構實現;

  3)列表中元素的類型可以不相同,它支持數字,字符串甚至可以包含列表(所謂嵌套);

  4)列表是寫在方括號 [] 之間、用逗號分隔開的元素列表;

  5)和字符串一樣,列表同樣可以被索引和截取,列表被截取後返回一個包含所需元素的新列表; 列表截取的語法格式如下: 變量[頭下標:尾下標]

   6)索引值以 0 爲開始值,-1 爲從末尾的開始位置;

注意:

     1)、List寫在方括號之間,元素用逗號隔開

     2)、和字符串一樣,list可以被索引和切片

     3)、List可以使用+操作符進行拼接

     4)、List中的元素是可以改變的

 

 

list = ['abcd', 321, 1.22, 'efgh', 34.9]
tinylist = [123, 'test']

print(list)             # 輸出完整列表
print(list[0])          # 輸出列表第一個元素
print(list[1:3])        # 從第二個開始輸出到第三個元素
print(list[2:])         # 輸出從第三個元素開始的所有元素
print(tinylist * 2)     # 輸出兩次列表
print(list + tinylist)  # 連接列表
x=[list,tinylist]       # 嵌套列表
print('嵌套列表第0個元素:',x[0])
list.append('cc')       # list末尾追加一個元素
print('添加一個元素 cc ,list爲:',list)
del list[2]             # 刪除下標爲2的元素
print('刪除後的列表:',end='')   #打印輸出後不換行
print(list)

 4.3.1 列表推導式

        列表推導式提供了從序列創建列表的簡單途徑。通常應用程序將一些操作應用於某個序列的每個元素,
用其獲得的結果作爲生成新列表的元素,或者根據確定的判定條件創建子序列
如果希望表達式推導出一個元組,就必須使用括號 

print('列表推導式')
vec = [1,2,3,4,5,6]
newVec = [3*x for x in vec if x > 3]
print('列表推導式推出的元組是:',newVec)

4.3.2 嵌套列表解析

# 3x4的矩陣列表
matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
# 轉換成 4x3 矩陣
print('4x3矩陣列表:',[[row[i] for row in matrix] for i in range(4)])

 

4.4 Tuple(元組)

元組寫在小括號 () 裏,元素之間用逗號隔開,list是[] '''

1)元組(tuple)與列表類似,不同之處在於元組的元素不能修改

2)元組中的元素類型也可以不相同 3)引且下標索引從0開始,-1 爲從末尾開始的位置。也可以進行截取

4)雖然tuple的元素不可改變,但它可以包含可變的對象,比如list列表

5)構造包含 0 個或 1 個元素的元組比較特殊,所以有一些額外的語法規則 tup1 = () # 空元組 tup2 = (20,) # 一個元素,需要在元素後添加逗號

 4.5 Set(集合)

1)定義:集合(set)是由一個或數個形態各異的大小整體組成的,構成集合的事物或對象稱作元素或是成員。

2)基本功能是進行成員關係測試和刪除重複元素。

3)可以使用大括號 { } 或者 set() 函數創建集合,

      注意:

      創建一個空集合必須用 set() 而不是 { },因爲 { } 是用來創建一個空字典

4)創建格式:

    parame = {value01,value02,...}

    或者 set(value)

 

5、實戰代碼如下

    

#!/usr/bin/python3        #第一行註釋是爲了告訴Linux/OS X系統,這是一個Python可執行程序,Windows系統會忽略這個註釋
# -*- coding: utf-8 -*-   #Python解釋器,按照UTF-8編碼讀取源代碼,否則,你在源代碼中寫的中文輸出可能會有亂碼
# 1、變量
print('1、變量')
'''
1)Python 中的變量不需要聲明。每個變量在使用前都必須賦值,變量賦值以後該變量纔會被創建。
2)在 Python 中,變量就是變量,它沒有類型,我們所說的"類型"是變量所指的內存中對象的類型。
3)等號(=)用來給變量賦值。
4)等號(=)運算符左邊是一個變量名,等號(=)運算符右邊是存儲在變量中的值
'''

counter = 100  # 整型變量
miles = 1000.0  # 浮點型變量
name = "runoob"  # 字符串

print(counter)
print(miles)
print(name)

# 2、多個變量賦值
# Python允許你同時爲多個變量賦值,並且類型可以不同
print('2、多個變量賦值')
#以上實例,創建一個整型對象,值爲 1,從後向前賦值,三個變量被賦予相同的數值
a=b=c=1
#兩個整型對象 3 和 4 的分配給變量 e 和 d,字符串對象 "test" 分配給變量 f
e, d, f = 3, 4, "test"
print(str(a)+','+str(b)+','+str(c))
print(str(e)+','+str(d)+','+f)

#3、標準數據類型
print('3、標準數據類型')
'''
Python3 中有六個標準的數據類型:
Number(數字)
String(字符串)
List(列表)
Tuple(元組)
Set(集合)
Dictionary(字典)
Python3 的六個標準數據類型中:
不可變數據(3 個):Number(數字)、String(字符串)、Tuple(元組);
可變數據(3 個):List(列表)、Dictionary(字典)、Set(集合)。
'''

#4.1、Number(數字)
print('4.1、Number(數字)')
'''
1)Python3 支持 int、float、bool、complex(複數)。
2)在Python 3裏,只有一種整數類型 int,表示爲長整型,沒有 python2 中的 Long。
像大多數語言一樣,數值類型的賦值和計算都是很直觀的。
3)內置的 type() 函數可以用來查詢變量所指的對象類型。

4)此外還可以用 isinstance 來判斷

isinstance 和 type 的區別在於:
   type()不會認爲子類是一種父類類型
   isinstance()會認爲子類是一種父類類型
   
'''
a, b, c, d = 20, 5.5, True, 4+3j
print(type(a), type(b), type(c), type(d))
print('a是否是整形? '+str(isinstance(a, int)))
'''
使用del語句刪除一些對象引用,刪除引用後,後面該對象無法使用
del語句的語法是
del var1[,var2[,var3[....,varN]]]
'''
var1 = 10
var2 = 'abc'
del var1,var2

'''
數值運算
注意:
  1、Python可以同時爲多個變量賦值,如a, b = 1, 2。
  2、一個變量可以通過賦值指向不同類型的對象。
  3、數值的除法包含兩個運算符:/ 返回一個浮點數,// 返回一個整數。
  4、在混合計算時,Python會把整型轉換成爲浮點數。
'''
print(5 + 4)    # 加法
print(4.3 - 2)  # 減法
print(3 * 7)    # 乘法
print(2 / 4)    # 除法,得到一個浮點數
print(2 // 4)   # 取整除 - 向下取接近除數的整數
print(17 % 3)   # 取餘
print(2 ** 5)   # 乘方

#4.2 字符串
print('4.2、字符串')
'''
    1) Python中的字符串用單引號 ' 或雙引號 " 括起來,同時使用反斜槓 \ 轉義特殊字符
如果你不想讓反斜槓發生轉義,可以在字符串前面添加一個 r,表示原始字符串:
    2) 字符串的截取的語法格式如下
變量[頭下標:尾下標]
索引值以 0 爲開始值,-1 爲從末尾的開始位置
    3)字符串格式化 用%
    4)使用f-string格式化  
       python3.6 之後版本添加的,稱之爲字面量格式化字符串,是新的格式化字符串的語法。

'''
stra = 'python'
print(stra)  # 輸出字符串
print('\'',str,'\'的長度爲:',len(stra))  # 輸出字符串
print(stra[0:-1])  # 輸出第一個到倒數第二個的所有字符
print(stra[0])     # 輸出字符串第一個字符
print(stra[2:5])   # 輸出從第三個開始到第五個的字符
print(stra[2:])    # 輸出從第三個開始的後的所有字符
print(stra * 2)    # 輸出字符串兩次,也可以寫成 print (2 * str)
print(stra + "Test")  # 連接字符串
print('中文'.encode('utf-8'))  #中文轉utf-8編碼
print ("我叫 %s 今年 %d 歲!" % ('小明', 10))
name = 'Jame'
print(f'Hello {name}')   # 替換變量
print(f'我想要的數字是:{1+2}')         # 使用表達式


#4.3 List(列表)
print('4.3 List(列表)')
'''
1) Python 中使用最頻繁的數據類型;
2)大多數集合類的數據結構實現;
3)列表中元素的類型可以不相同,它支持數字,字符串甚至可以包含列表(所謂嵌套);
4)列表是寫在方括號 [] 之間、用逗號分隔開的元素列表;
5)和字符串一樣,列表同樣可以被索引和截取,列表被截取後返回一個包含所需元素的新列表;
   列表截取的語法格式如下:
   變量[頭下標:尾下標]
6)索引值以 0 爲開始值,-1 爲從末尾的開始位置;

注意:
1、List寫在方括號之間,元素用逗號隔開
2、和字符串一樣,list可以被索引和切片
3、List可以使用+操作符進行拼接
4、List中的元素是可以改變的
'''
list = ['abcd', 321, 1.22, 'efgh', 34.9]
tinylist = [123, 'test']

print(list)             # 輸出完整列表
print(list[0])          # 輸出列表第一個元素
print(list[1:3])        # 從第二個開始輸出到第三個元素
print(list[2:])         # 輸出從第三個元素開始的所有元素
print(tinylist * 2)     # 輸出兩次列表
print(list + tinylist)  # 連接列表
x=[list,tinylist]       # 嵌套列表
print('嵌套列表第0個元素:',x[0])
list.append('cc')       # list末尾追加一個元素
print('添加一個元素 cc ,list爲:',list)
del list[2]             # 刪除下標爲2的元素
print('刪除後的列表:',end='')   #打印輸出後不換行
print(list)

#列表推導式
'''
列表推導式提供了從序列創建列表的簡單途徑。通常應用程序將一些操作應用於某個序列的每個元素,
用其獲得的結果作爲生成新列表的元素,或者根據確定的判定條件創建子序列
如果希望表達式推導出一個元組,就必須使用括號
'''
print()
print('列表推導式')
vec = [1,2,3,4,5,6]
newVec = [3*x for x in vec if x > 3]
print('列表推導式推出的元組是:',newVec)


#嵌套列表解析
print()
print('嵌套列表解析')

# 3x4的矩陣列表
matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
# 轉換成 4x3 矩陣
print('4x3矩陣列表:',[[row[i] for row in matrix] for i in range(4)])

#4.4 Tuple(元組)
print()
print('4.4 Tuple(元組)')
# 元組寫在小括號 () 裏,需要括號也行,元素之間用逗號隔開,list是[]
'''
1、元組(tuple)與列表類似,不同之處在於元組的元素不能修改  所謂元組的不可變指的是元組所指向的內存中的內容不可變。
2、元組中的元素類型也可以不相同
3、引且下標索引從0開始,-1 爲從末尾開始的位置。也可以進行截取
4、雖然tuple的元素不可改變,但它可以包含可變的對象,比如list列表
5、構造包含 0 個或 1 個元素的元組比較特殊,所以有一些額外的語法規則
   tup1 = ()      # 空元組
   tup2 = (20,)   # 一個元素,需要在元素後添加逗號
'''
tuple = ('abcd', 321, 1.22, 'efgh', 34.9)
tinyTuple = (123, 'test')
testTuple = 'a','b',1


print('元組tuple:',tuple)                              # 輸出完整列表
print('元組tuple[0]:',tuple[0])                        # 輸出列表第一個元素
print('元組tuple[1,3]:',tuple[1:3])                    # 從第二個開始輸出到第三個元素
print('元組tuple[2:]:',tuple[2:])                      # 輸出從第三個元素開始的所有元素
print('元組tinyTuple輸出兩次:',tinyTuple * 2)           # 輸出兩次列表
print('連接元組tuple,tinyTuple:',tuple + tinyTuple)  # 連接2個元組
print('元組testTuple:',testTuple)                     # 輸出完整列表testTuple
del testTuple                                          # 刪除元組

#4.5 Set(集合)
print()
print('4.5 Set(集合')
'''
1)定義:集合(set)是由一個或數個形態各異的大小整體組成的,構成集合的事物或對象稱作元素或是成員。
2)基本功能是進行成員關係測試和刪除重複元素。
3)可以使用大括號 { } 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 { },因爲 { } 是用來創建一個空字典
4)創建格式:
   parame = {value01,value02,...}
   或者
   set(value)
'''
student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
print(student)  # 輸出集合,重複的元素被自動去掉
# 成員測試
if 'Rose' in student:
    print('Rose 在集合中')
else:
    print('Rose 不在集合中')

# set可以進行集合運算
a = set('abracadabra')
b = set('alacazam')
print('打印集合a:',a)
a.add('yyy')                      # 添加元素  也可以用 a.update('yyy')
print('a集合中添加元素 yyy:',a)  # a 和 b 的差集
print('a 和 b 的差集a-b:',a - b)  # a 和 b 的差集
print('a 和 b 的並集a|b:',a | b)  # a 和 b 的並集
print('a 和 b 的交集:',a & b)  # a 和 b 的交集
print('a 和 b 中不同時存在的元素:',a ^ b)  # a 和 b 中不同時存在的元素

#4.6 Dictionary(字典)
print()
print('4.6 Dictionary(字典)')
'''
1)字典(dictionary)是Python中另一個非常有用的內置數據類型
2)列表是有序的對象集合,字典是無序的對象集合。兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取
字典是一種映射類型,字典用 { } 標識,它是一個無序的 鍵(key) : 值(value) 的集合
3)鍵(key)必須使用不可變類型 例如:數字、字符串、元組
4)在同一個字典中,鍵(key)必須是唯一的 
'''
dict = {}
dict['one'] = "這是第一個元素"
dict[2] = "這是第二個元素"
tinydict = {'name': 'jake', 'code': 131, 'web': 'www.baidu.com'}
del tinydict['name']
print('輸出鍵爲 one 的值',dict['one'])                    # 輸出鍵爲 'one' 的值
print('輸出鍵爲 2 的值',dict[2])                          # 輸出鍵爲 2 的值
print('輸出完整的字典tinydict:',tinydict)                 # 輸出完整的字典
print('輸出完整的字典tinydict所有鍵',tinydict.keys())     # 輸出所有鍵
print('輸出完整的字典tinydict所有值',tinydict.values())   # 輸出所有值
print('刪除key=name的字典:',tinydict)                    # 刪除

    結果輸出:

C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\python.exe F:/python-space/test/BaseDataType.py
1、變量
100
1000.0
runoob
2、多個變量賦值
1,1,1
3,4,test
3、標準數據類型
4.1、Number(數字)
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
a是否是整形? True
9
2.3
21
0.5
0
2
32
4.2、字符串
python
' <class 'str'> '的長度爲: 6
pytho
p
tho
thon
pythonpython
pythonTest
b'\xe4\xb8\xad\xe6\x96\x87'
我叫 小明 今年 10 歲!
Hello Jame
我想要的數字是:3
4.3 List(列表)
['abcd', 321, 1.22, 'efgh', 34.9]
abcd
[321, 1.22]
[1.22, 'efgh', 34.9]
[123, 'test', 123, 'test']
['abcd', 321, 1.22, 'efgh', 34.9, 123, 'test']
嵌套列表第0個元素: ['abcd', 321, 1.22, 'efgh', 34.9]
添加一個元素 cc ,list爲: ['abcd', 321, 1.22, 'efgh', 34.9, 'cc']
刪除後的列表:['abcd', 321, 'efgh', 34.9, 'cc']

列表推導式
列表推導式推出的元組是: [12, 15, 18]

嵌套列表解析
4x3矩陣列表: [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
4.4 Tuple(元組)
元組tuple: ('abcd', 321, 1.22, 'efgh', 34.9)
元組tuple[0]: abcd
元組tuple[1,3]: (321, 1.22)
元組tuple[2:]: (1.22, 'efgh', 34.9)
元組tinyTuple輸出兩次: (123, 'test', 123, 'test')
連接元組tuple,tinyTuple: ('abcd', 321, 1.22, 'efgh', 34.9, 123, 'test')
元組testTuple: ('a', 'b', 1)
4.5 Set(集合
{'Jim', 'Tom', 'Mary', 'Rose', 'Jack'}
Rose 在集合中
打印集合a: {'d', 'a', 'b', 'c', 'r'}
a集合中添加元素 yyy: {'d', 'yyy', 'a', 'b', 'c', 'r'}
a 和 b 的差集a-b: {'d', 'r', 'b', 'yyy'}
a 和 b 的並集a|b: {'d', 'z', 'yyy', 'a', 'b', 'm', 'c', 'r', 'l'}
a 和 b 的交集: {'a', 'c'}
a 和 b 中不同時存在的元素: {'d', 'z', 'yyy', 'b', 'm', 'r', 'l'}
4.6 Dictionary(字典)
輸出鍵爲 one 的值 這是第一個元素
輸出鍵爲 2 的值 這是第二個元素
輸出完整的字典tinydict: {'code': 131, 'web': 'www.baidu.com'}
輸出完整的字典tinydict所有鍵 dict_keys(['code', 'web'])
輸出完整的字典tinydict所有值 dict_values([131, 'www.baidu.com'])
刪除key=name的字典: {'code': 131, 'web': 'www.baidu.com'}

Process finished with exit code 0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章