數字類型
數字(int,float,)
整數、長整數、浮點數、複數
十六進制和八進制:010, 0x10
表達式操作符:+,-,*,/,>>,!,^(異或),&等
優先級/括號
內置的數學函數:abs、pow
工具模塊:random、math
注意
/的結果只取整數部分
random只返回0到1之間的小數,如果使用大的隨機數需要特殊處理
字符串(str)
空字符串 s1 = ‘’
雙引號 s2 = “spam’s”
三引號塊 block = “““…“”…”””
合併 s1 + s2
重複 s2 * 3
索引 s2[i]
分片 s2[i:j]
長度 len(s2)
字符串格式 “a = %s “ % ‘sample’
迭代 for x in s2:
成員關係 ‘m’ in s2
查找字串首未知 find
字符串格式化
"I am %s, %d years old, %.2f cm" % ("muxu", 30, 170.0)
字符串工具
string.upper/find/atoi/split/join
轉義字符
\’, \n, \r, \0XX, \xXX
列表(list)
任意對象的有序集合
通過偏移存取(分片、合併)
可變長度、異構、任意嵌套
注意:
將一個列表賦值給一個新的變量只是引用關係
列表操作
L = [‘spam’, ‘Spam’, ‘SPAM’]
L = [‘spam’, ‘Spam’, [1,2,3], ‘SPAM’]
L[2], L[-2], L[1:]
L[1]=‘eggs’
L[0:2]=[‘eat’, ‘more’]
L.append(‘please’)
L.sort()
del L[0]
del L[1:]
字典(dict)
無序的任意對象集合
通過鍵來存取(而不是偏移量)
可變長度、異構、任意嵌套
注意:
將一個字典賦值給一個新的變量只是引用關係
字典的常見操作
d1={}
d2={‘spam’:2, ‘eggs’:3}
d3={‘spam’:2, ‘kkk’:{‘eggs’:3, ‘ham’:1}}
d2[‘spam’]
len(d2)
d2.has_key(‘spam’)
d2.keys()
del d2[‘eggs’]
for key in d2.keys(): print key, d2[key]
for item in d2: print item
for value in d2.values(); print value
使用字典的注意事項
字典是映射,不是序列,+合併(update)、分片等操作不能使用。
賦值給新的索引將添加項
鍵沒有必要總是字符串(數字,字符[串],不能是dict,list)
集合
無序不重複元素的集
注意:
無序
不重複
支持常見集合的運算(交集|差集|並集)
元組(tuple)
除了不能原位改變,並且通常寫在一串圓括號中的項之外,元組與列表類似。古老的類型
注意:
***支持的操作很少,基本不使用,不推薦使用***
類重載操作符
__init__ 構造函數 創建對象:class()
__del__ 析構函數 釋放對象的時候
__add__ “+” x + y
__or__ “|” x | y
__repr__ 打印,轉換 print x, `x`
__call__ 函數調用 X()
__setattr__ 屬性賦值 x.a=1
__getattr__ 屬性引用 x.a
__getitem__ 索引 x[key],for循環,in測試
__setitem__ 索引賦值 x[key] = value
__getslice__ 分片 x[low:high]
__len__ 長度 len(x)
__cmp__ 比較 x == Y ,x < y
__radd__ 右邊的操作符"+" 非實例 + x
__str__ return str,實現後可以print 對象