1. 程式人生 > >思維導圖版Python3入門與進階(一)基本資料型別

思維導圖版Python3入門與進階(一)基本資料型別

前言

    自己也是在摸打滾爬中在慢慢的學習python3這門語言,之前是java開發,到後來轉向python的學習,因為python語言對於資料處理方面還是異常強大。學習語言,自己的心得還是要多實踐,最好是先打好基礎,然後自己嘗試著拿來使用,變成自己的東西才是最重要的。話不多說,這個專題會把自己學習python3的筆記和心得分享給大家。與大家共勉。

Python的基本資料型別


進位制與進位制型別轉化

進位制

進位制10,2,8,16的表示:

0b  二進位制  0b10
0o  八進位制
0x  十六進位制


注:是零而不是O

進位制轉換

轉換成2進位制:

bin(10)  
bin(0o)
bin(0x)

轉換成10進位制

int()

轉換成16進位制

hex()

轉換成8進位制

oct(0b111)


Number

Number 數字有4個子型別:

1.    整數:int         //對比其他變成語言:short int long

2.    浮點數:float   //對比其他語言      :單精度(float)、雙精度(double == )

可以使用type()函式來檢視型別

type(1)            #整型
type(-1)           #整型
type(2/2) == float  #除法運算
type(2//2) == int   #整除運算

注:除法運算過程中一定要注意上面的示例,不然會導致型別出錯

3.    布林型別: bool  :(True False)

4.    複數: complex

bool特殊栗子詳解:

int(True)     
int(False)

 注:bool是數字型別的一種

bool(1)
bool(0)

注:因為是數字型別的一種,所以它規則是,非0表示真,0表示假

但是其實字串也可以表示真假

bool('abc')           #True
bool('')              #False

規則:非空為True, 空為False

除了字串,下面這些也可以表示真假

[1, 2, 3]        #True
[]               #False
{1, 2, 3}     True
{}               False

 注:規則為非空為True , None 為空 False

複數的表示:

36j  #複數

字串

字串型別為str

type('hello')  #str

如何表示 :有單引號,雙引號,三引號幾種方式

'hello'
"hello"
'''
hello
'''

怎樣判斷要使用哪種方式:

1.    如果要輸入單引號時 可以使用雙引號    

"let's go"

2.    或者單引號之間可以夾雜雙引號

'he says "hello" !'

3.    或者可以直接使用轉義字元 

'let\'t go'

三引號:建議每行字元79個

'''
可以多行輸入
多行
多行
'''

注意下面這個栗子:

輸入一個格式,在顯示的時候會表示這些格式\t \n等  

 

使用print(''' ''')會執行字串的轉義字元


 注:這是IDLE的一些特性,注意區分''' '''輸出的不同

如果想在IDLE中實現換行操作: 

hello\
world

注: 單引號和雙引號的換行可以通過這樣的機制進行,這樣的好處是避免程式碼太長不便閱讀

轉義字元

定義:特殊的字元

        1)無法看到的字元    #回車 換行 製表符

        2)語法衝突的符號

表示方式:

\t            #製表符
\n           #換行
 \'           # ' 
\r           #回車 

注意:\r回車 \n換行  不是同一個概念

一種特殊的格式:

print(r' ')

注:r'包含的字串' 不是一個普通字串,而是一個原始字串


看到了吧,原始字串可以使轉義字元失效

r R 都可以表示原始字串

注:r'let't go '  是不可以的,因為裡面包含的就不是一個字串(中間被斷開了)

字串的合併和剔除操作

字串的運算

1.    合併和重複運算

"hello "+"world"

"hello" * 3

2.    取字元運算

"hello world"[0]

"hello world"[4]    //序號
"hello world"[-1]   //從末尾往前數,取倒數第一個

3.    取字串片段

"hello world"[0:4]      #取前四個字元
"hello world"[0:5]      #到要擷取的位置的下一個位置,即取前五個字元

注: 序號從0開始


從後到擷取n個字元

步長 "hello world"[0:-1]


[6:] 擷取到末尾

[:-4] 擷取掉後4個

[-4:0] 取後4個元素

list列表

概念

用來表示組的概念

[1,2,3,4,5,6]

列表[1,2,3,4,5,6] ,是list型別

注:其中的數字可以替換成各種型別,甚至還可以巢狀列表

[1,2,[1,2,3,4],4,5,6]

訪問列表中的某個元素

["","","",""][0]

["","","",""][1]

["","","",""][0:2]    //取出的也是一個列表

["","","",""][-1:]

注:類似字串操作

列表的操作

列表合併使用 +

列表*3 數字重複3次

沒有減法操作

[[],[],[],[]] 分組

tuple元組

定義:表示組概念的元組

 表示:

(1,2,3,4,5)

也可以存放不同的元素,類似List

對元組的操作:

(1,2,3,4,5)[0]

(1,2,3,4,5)[0:2]

(1,2,3) + (4,5,6)

(1,2,3)*3

和int str list一樣,元組也有自己的標識:

tuple #元組

type((1,2,3))

特殊栗子:

type((1))          #int
type(('hello'))    #str

注:這樣表示元組的話,可能會與()運算進行衝突

所以為了解決衝突,()硬性規定為運算

規定:(1,) 表示一個元素的元組

          () 表示一個空的元組

list不存在這樣的問題,如

type([1])  #是一個list

序列

序列:也稱為組

str list tuple 都是序列

因為它們有共有的操作

'hello'[2]
[1,2,3,4][2]
(1,2,3,4)[2]

注:原因是每個元素都會分配一個序號和順序

因此它們還有一些共有的操作:

切片 [0:3]
       [-1:]
       [0:8:2]
加    + 
乘    *

一些基本的操作 

1. 判斷元素是否在序列中

3 in [1,2,3,4,5,6]   #是一個bool型別的
3 not in [1,2,3,4,5,6]

2.判斷序列的長度

len([1,2,3,4,5,6])

3.返回最大值、最小值

max([1,2,3,4,5,6])
min()    

注:字串間也有大小的操作

檢視字元編碼:

ord('d')
ord(' ')

集合 set

特點:無序

表示:{元素, 元素}

type({1,2,3,4,5,6})

基本操作:

len()
1 in {1,2,3,4,5,6}
1 not in {1,2,3,4,5,6}

差集

#剔除元素的操作   可以使用減法的操作

{1,2,3,4,5,6} - {1,2,3}


交集

{1,2,3,4,5,6} & {3,4}


並集

{1,2,3,4,5,6} | {3,4,7}

 

特殊栗子

type({})  #dict

注:因為空dict的表示方法也是{}, 所以為了避免衝突有了下面的定義

set()  #定義空的集合
type(set())    #set

字典 dict

定義:類似生活中的字典,用key:value對的方式儲存

表示:

{key1:value1,key2:value2...}

注:也是無序的,不是序列

訪問方式:

{key1:value1,key2:value2...}['key']

需要注意的要點:

1.    字典裡是不能有重複的key的,因為會被後面的覆蓋掉

2.    字典的鍵(key)不一定只能有str,也能有int

       int 和 str是不一樣的key

3.    value沒有型別限制

       但是key不可以是任意型別,必須是不可變的型別

所以列表不可以作為key,元組是可以的


空的字典可以直接使用{}表示

type({})    #dict

總結python3基本資料型別

要點:

1.    str和元組是不可變,屬於不可變型別

2.    數字(number) 型別包含: int float bool complex(複數)

3.    組  序列list 集合set 字典dict