Python3 基礎資料型別概述

大雄45發表於2021-07-10
導讀 Python 中的變數不需要宣告。每個變數在使用前都必須賦值,變數賦值以後該變數才會被建立。在 Python 中,變數就是變數,它沒有型別,我們所說的"型別"是變數所指的記憶體中物件的型別。

Python3 基礎資料型別概述Python3 基礎資料型別概述

一、說明

Python 中的變數不需要宣告。每個變數在使用前都必須賦值,變數賦值以後該變數才會被建立。

在 Python 中,變數就是變數,它沒有型別,我們所說的"型別"是變數所指的記憶體中物件的型別。

等號(=)用來給變數賦值。

等號(=)運算子左邊是一個變數名,等號(=)運算子右邊是儲存在變數中的值。

例如:

#!/usr/bin/python3
 
counter = 100          # 整型變數
miles   = 1000.0       # 浮點型變數
name    = "runoob"     # 字串
a = b = c = 1          # 同時為多個變數賦值
a,b,c=1,2,'hello'      # 為多個物件指定多個變數
二、標準資料型別

Python3 中有六個標準的資料型別:

Number(數字)
String(字串)
List(列表)
Tuple(元組)
Sets(集合)
Dictionary(字典)
2.1 Number(數字)

Python3 支援 int、float、bool、complex(複數)

只有一種整數型別 int,表示為長整型,沒有 python2 中的 Long。

內建的 type() 函式可以用來查詢變數所指的物件型別。

>>> a,b,c,d=5,6.7,true,2+3j
Traceback (most recent call last):
  File "", line 1, inNameError: name 'true' is not defined
>>> a,b,c,d=5,6.7,True,2+3j
>>> print(type(a),type(b),type(c),type(d))

注意:

  1. Python可以同時為多個變數賦值,如a, b = 1, 2。
  2. 一個變數可以透過賦值指向不同型別的物件。
  3. 數值的除法(/)總是返回一個浮點數(print(2/4)輸出0.5),要獲取整數使用//運算子。
  4. 在混合計算時,Python會把整型轉換成為浮點數。
  5. 布林型:Ture和False、1和0
  6. del語句可刪除定義的物件,如:del a,b
2.2 String(字串)

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

字串的擷取的語法格式如下:

變數[頭下標:尾下標]

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

加號 (+) 是字串的連線符, 星號 (*) 表示複製當前字串,緊跟的數字為複製的次數。

例子:

#!/usr/bin/python3
# -*- coding:UTF-8 -*-
str='hello,world!'
print(str)                 # 輸出字串
print(str[0:-1])           # 輸出第一個到倒數第二個的所有字元
print(str[0])              # 輸出字串第一個字元
print(str[2:5])            # 輸出從第三個開始到第五個的字元
print(str[2:])             # 輸出從第三個開始的後的所有字元
print(str * 2)             # 輸出字串兩次
print(str + '你好')        # 連線字串
print('------------------------------')
print('hello\nworld')      # 使用反斜槓(\)+n轉義特殊字元
print(r'hello\nworld')     # 在字串前面新增一個 r,表示原始字串,不會發生轉義

執行結果:

hello,world!                  
hello,world                  
h                  
llo
llo,world!
hello,world!hello,world!
hello,world!你好
------------------------------
hello
world
hello\nworld

注意:

  1. 反斜槓可以用來轉義,使用r可以讓反斜槓不發生轉義。
  2. 字串可以用+運算子連線在一起,用*運算子重複。
  3. Python中的字串有兩種索引方式,從左往右以0開始,從右往左以-1開始。
  4. Python中的字串不能改變。
  5. Python 沒有單獨的字元型別,一個字元就是長度為1的字串。
2.3 List(列表)

List(列表) 是 Python 中使用最頻繁的資料型別。

列表可以完成大多數集合類的資料結構實現。

列表中元素的型別可以不相同,它支援數字,字串甚至可以包含列表(所謂巢狀)。

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

和字串一樣,列表同樣可以被索引和擷取,列表被擷取後返回一個包含所需元素的新列表。

列表擷取的語法格式如下:

變數[頭下標:尾下標]

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

加號(+)是列表連線運算子,星號(*)是重複操作。

例子:

#!/usr/bin/python3
# -*- coding:UTF-8 -*-
list=['hello',357,6.6,'world']
ttlist=[123,'new']
print(list)                # 輸出完整列表
print(list[0])             # 輸出列表第一個元素
print(list[1:3])           # 輸出從第2個開始到第3個元素
print(list[2:])            # 輸出從第三個開始的後的所有元素
print(ttlist * 2)          # 輸出兩次列表
print(str + ttlist)        # 連線列表

執行結果:

['hello', 357, 6.6, 'world']
hello
[357, 6.6]
[6.6, 'world']
[123, 'new', 123, 'new']
['hello', 357, 6.6, 'world', 123, 'new']

與Python字串不一樣的是,列表中的元素是可以改變的:

>>> new=[1,2,3,4,5,'hi']       
>>> new
[1, 2, 3, 4, 5, 'hi']
>>> new[1]='hehe'           #改變列表new中的第2個元素為hehe
>>> new
[1, 'hehe', 3, 4, 5, 'hi']
>>> new[2:4]=[8,10]         #改變列表new中的第3/4個元素為8,9
>>> new
[1, 'hehe', 8, 10, 5, 'hi'
>>> new[2:4]=[]            #刪除列表new中的第3、4個元素
>>> new
[1, 'hehe', 5, 'hi']
>>> new[2:3]=[]

注意:

  1. List寫在方括號之間,元素用逗號隔開。
  2. 和字串一樣,list可以被索引和切片.
  3. List可以使用+運算子進行拼接。
  4. List中的元素是可以改變的。
2.4 Tuple(元組)

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

元組寫在小括號()裡,元素之間用逗號隔開。

元組中的元素型別也可以不相同。

元組與字串類似,可以被索引且下標索引從0開始,-1 為從末尾開始的位置。也可以進行擷取。

其實,可以把字串看作一種特殊的元組。

構造包含 0 個或 1 個元素的元組比較特殊,所以有一些額外的語法規則:

tup1 = ()     # 空元組
tup2 = (20,)  # 一個元素,需要在元素後新增逗號

string、list和tuple都屬於sequence(序列)。

注意:

  1. 與字串一樣,元組的元素不能修改。
  2. 元組也可以被索引和切片,方法一樣。
  3. 注意構造包含0或1個元素的元組的特殊語法規則。
  4. 元組也可以使用+運算子進行拼接。
2.5 Sets(集合)

集合(set)是一個無序不重複元素的序列。

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

可以使用大括號 { } 或者 set() 函式建立集合,注意:建立一個空集合必須用 set() 而不是 { },因為 { } 是用來建立一個空字典。

例子:

#!/usr/bin/python3
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)
print(b)
print(a - b)  # a和b的差集
print(b - a)  # b和a的差集
print(a | b)  # a和b的並集
print(a & b)  # a和b的交集
print(a ^ b)  # a和b中不同時存在的元素

輸出結果:

{'Jim', 'Mary', 'Rose', 'Tom', 'Jack'}
Rose 在集合中
{'d', 'c', 'r', 'a', 'b'}
{'l', 'c', 'm', 'a', 'z'}
{'d', 'b', 'r'}
{'l', 'm', 'z'}
{'l', 'd', 'c', 'r', 'm', 'a', 'b', 'z'}
{'c', 'a'}
{'l', 'd', 'r', 'm', 'b', 'z'}
2.6 Dictionary(字典)

字典(dictionary)是Python中另一個非常有用的內建資料型別。

列表是有序的物件結合,字典是無序的物件集合。

兩者之間的區別在於:字典當中的元素是透過鍵來存取的,而不是透過偏移存取。

字典是一種對映型別,字典用"{ }"標識,它是一個無序的鍵(key) : 值(value)對集合。

鍵(key)必須使用不可變型別。

在同一個字典中,鍵(key)必須是唯一的。

例子:

#!/usr/bin/python3
dict = {}
dict['one'] = "1 - hello,world"
dict[2] = "2 - 嘿嘿"
tinydict = {'name': 'lucy', 'code': 100, 'class': '5年級6班'}
print(dict['one'])  # 輸出鍵為 'one' 的值
print(dict[2])  # 輸出鍵為 2 的值
print(tinydict)  # 輸出完整的字典
print(tinydict.keys())  # 輸出所有鍵
print(tinydict.values())  # 輸出所有值

輸出結果:

1 - hello,world
2 - 嘿嘿
{'name': 'lucy', 'code': 100, 'class': '5年級6班'}
dict_keys(['name', 'code', 'class'])
dict_values(['lucy', 100, '5年級6班'])

內建函式:

get根據key值去對應的value取不到值返回None,不報錯

>>> dic = {'k1':'v1','k2':'v2'}
>>> v = dic.get('k1')
>>> print(v)
v1

clear 清空

>>> dic = {'k1':'v1','k2':'v2'}
>>> v = dic.clear()
>>> print(dic)
{}
>>> print(v)
None

copy 複製(淺複製)

>>> dic = {'k1':'v1','k2':'v2'}
>>> v = dic.copy()
>>> print(v)
{'k1':'v1','k2':'v2'}

pop 刪除並獲取對應的value值

>>> dic = {'k1':'v1','k2':'v2'}
>>> v = dic.pop('k1')
>>> print(dic)
{'k2':'v2'}
>>> print(v)
v1

popitem 隨機刪除鍵值對,並獲取到刪除的鍵值

>>> dic = {'k1':'v1','k2':'v2'}
>>> v = dic.popitem()
>>> print(dic)
{'k1':'v1'}
>>> print(v)
{'k2':'v2'}

setdefault 增加,如果key值存在則不操作

>>> dic = {'k1':'v1','k2':'v2'}
>>> dic.setdefault('k3','v3')
>>> print(dic)
{'k1':'v1','k2':'v2','k3':'v3'}

update 批次增加或修改

dic = {'k1':'v1','k2':'v2'}
dic.update({'k3':'v3','k4':'v4'})
print(dic)
{'k1':'v1','k2':'v2','k3':'v3','k4':'v4'}

注意:

  1. 字典是一種對映型別,它的元素是鍵值對。
  2. 字典的關鍵字必須為不可變型別,且不能重複。
  3. 建立空字典使用 { }。
三、資料型別轉換

資料型別的轉換,你只需要將資料型別作為函式名即可。

以下幾個內建的函式可以執行資料型別之間的轉換。這些函式返回一個新的物件,表示轉換的值。

函式 描述
int(x [,base]) 將x轉換為一個整數
float(x) 將x轉換到一個浮點數
complex(real [,imag]) 建立一個複數
str(x) 將物件 x 轉換為字串
repr(x) 將物件 x 轉換為表示式字串
eval(str) 用來計算在字串中的有效Python表示式,並返回一個物件
tuple(s) 將序列 s 轉換為一個元組
list(s) 將序列 s 轉換為一個列表
set(s) 轉換為可變集合
dict(d) 建立一個字典。d 必須是一個序列 (key,value)元組。
frozenset(s) 轉換為不可變集合
chr(x) 將一個整數轉換為一個字元
unichr(x) 將一個整數轉換為Unicode字元
ord(x) 將一個字元轉換為它的整數值
hex(x) 將一個整數轉換為一個十六進位制字串
oct(x) 將一個整數轉換為一個八進位制字串

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2780657/,如需轉載,請註明出處,否則將追究法律責任。

相關文章