總目錄:http://www.reibang.com/p/e406a9bc93a9
Python - 子目錄:http://www.reibang.com/p/50b432cb9460
一询一、量
? Python中沒(méi)有明確區(qū)分變量常量的定義,一般默認(rèn)全大寫(xiě)拼寫(xiě)的變量名為常量(只是用于給編寫(xiě)者的一個(gè)提示)癌椿。
二健蕊、數(shù)據(jù)類型
? Python中基礎(chǔ)數(shù)據(jù)類型大體分為:數(shù)字(整型(整型與長(zhǎng)整型在Python3中無(wú)區(qū)別),浮點(diǎn)型踢俄,布爾型缩功,復(fù)數(shù)),字符串(字符)都办,列表嫡锌,元組,集合琳钉,字典六種類型势木。
? 其中數(shù)字,字符串歌懒,元組為不可變數(shù)據(jù)類型啦桌;列表,集合及皂,字典為可變數(shù)據(jù)類型甫男。
? 不可變數(shù)據(jù)類型:不可變數(shù)據(jù)類型的優(yōu)點(diǎn)就是內(nèi)存中不管有多少個(gè)引用,相同的對(duì)象只占用了一塊內(nèi)存验烧,但是它的缺點(diǎn)就是當(dāng)需要對(duì)變量進(jìn)行運(yùn)算從而改變變量引用的對(duì)象的值時(shí)板驳,由于是不可變的數(shù)據(jù)類型,所以必須創(chuàng)建新的對(duì)象碍拆,這樣就會(huì)使得一次次的改變創(chuàng)建了一個(gè)個(gè)新的對(duì)象笋庄,不過(guò)不再使用的內(nèi)存會(huì)被垃圾回收器回收。
>>> x = 1
>>>id(x)
31106520
>>> y = 1
>>>id(y)
31106520
>>> x = 2
>>>id(x)
31106508
>>> y = 2
>>>id(y)
31106508
>>> z =y
>>>id(z)
31106508
? 可變數(shù)據(jù)類型:可變數(shù)據(jù)類型是允許同一對(duì)象的內(nèi)容倔监,即值可以變化直砂,但是地址是不會(huì)變化的。但是需要注意一點(diǎn)浩习,對(duì)可變數(shù)據(jù)類型的操作不能是直接進(jìn)行新的賦值操作静暂,比如說(shuō)a = [1, 2, 3, 4, 5, 6],這樣的操作就不是改變值了谱秽,而是新建了一個(gè)新的對(duì)象洽蛀,這里的可變只是對(duì)于類似于append摹迷、+=等這種操作。
>>> a = [1, 2]
>>>id(a)
35554048
>>> a = [1, 2]
>>>id(a)
35522880
>>> a.append(3)
>>>id(a)
35522880
>>> a += [4]
>>>id(a)
35522880
>>>a
[1, 2, 3, 4]
三郊供、運(yùn)算符
? 數(shù)字運(yùn)算符:+峡碉,-,*驮审,/鲫寄,//(取整除),%(余除)疯淫,**(方)
? ? 優(yōu)先級(jí):**地来,(*、/熙掺、%未斑、//)同級(jí),(+币绩、-)同級(jí)
>>> a=12
>>> b=5
>>>print(a+b)
17
>>>print(a-b)
7
>>>print(a*b)
60
>>>print(a/b)
2.4
>>>print(a**b)
248832
>>>print(a//b)
2
>>>print(a%b)
2
? 邏輯運(yùn)算符:not(非)蜡秽,and(與),or(或)缆镣,xor(異或)
? ? 優(yōu)先級(jí):not芽突,and,(or费就、xor)同級(jí)
>>>a=1
>>>b=0
>>>a and b
0
>>>a or b
1
>>>not a
False
>>>not b
True
比較運(yùn)算符:==(等于),!=(不等于),>(大于),<(小于),>=(大于等于),<=(小于等于)
? ? 優(yōu)先級(jí):同級(jí)
>>> a=7
>>> b=5
>>> c=5
>>>print(b==c)
True
>>>print(b!=c)
False
>>>print(a>b)
True
>>>print(a<b)
False
>>>print(a>=b)
True
>>>print(b<=c)
True
? 位運(yùn)算符:&(同and),|(同or)川队,~(同not)力细,^(同xor),>>(右移)固额,<<(左移)
? ? 優(yōu)先級(jí):(<<眠蚂、>>)同級(jí),&斗躏,~逝慧,^,|
>>> a=10? ? ? ? ? #a=0000 1010
>>> b=8? ? ? ? ? ? #b=0000 1000
>>> a & b? ? ? ? ? #0000 1000
8
>>> a | b? ? ? ? ? #0000 1010
10
>>> a ^ b? ? ? ? ? #0000 0010
2
>>> c=~a? ? ? ? ? #? a的反碼的補(bǔ)碼 (0000 1010)取反 (1111 0101)
>>>print(c)? ? ? ? #(1111 0101)取補(bǔ)(0000 1011)
-11? ? ? ? ? ? ? ? ? ? # -0000 1011(前面加上負(fù)號(hào))? ?可以理解為? -(a+1)
>>> c=a>>2? ? ? #a=0000 1001
>>>print(c)? ? ? ? #c=0000 0010
2
>>> c=a<<2? ? ? #c=0010 1000
>>>print(c)
40
? 成員檢測(cè):in,not in?
? ? 優(yōu)先級(jí):同級(jí)
>>>a=5
>>>b=3
>>>list=[1,2,3]
>>>a in list
False
>>>a not in list
True
>>>b is list
True
>>>b not in list
False
? 身份檢測(cè):is, is not
? ? 優(yōu)先級(jí):同級(jí)
>>>a=10
>>>b=10
>>>c=20
>>>a is b
True
>>>a is not b
False
>>>a is c
True
>>>a is not c
False