Python支援5種資料類型,包括數字(numbers)、字串(string)、列表(list)、元組(tuple)和字典(dictionary)。作為一門動態類型語言,不用去宣告一個標示符的類型,使用的時候是什麼類型會自動判定。
對於定義好的變量,若不使用該變量,可以用del刪除來釋放佔有的資源,如
var = 10del var
Python的數字(numbers):支持int、long、float和complex,比較簡單不給範例。
Python的字串(string):如前面所說的可以被多種引號定義,支援[p](獲得p位置的字元)、[l:r](獲得從l開始到r截止的字串)、*t(獲得t個該字串連結在一起的字串)以及+s(取得與s連結後的字串)方法(methods,為什麼用方法呢,與ruby有關,所有物件的.methods可以顯示所有能執行的操作,所以我也開始把一個物件能夠執行的操作叫做方法),如下範例
s = 'This is a test case.'PRint s[0] #輸出s的第一個字元' T'print s[0:4] #輸出s的第一個到第四個字元組成的字串'This'print s*2 #輸出兩個s 連結的新字串 字串s + ' Good! ' #輸出s與' Good!'連結後的字串
Python的列表(list):用[]來定義,用起來像C++的容器vector,只不過這個容器可以裝不同類型的值,同時可以嵌套定義,一個列表裡麵包含另一個列表,方法與string的類似,如下給出例子
l = ['wyp', 1, 3.14, [2, 'cc']]print l #輸出整個整個lprint#輸出整個整個lprint l[0] #輸出l的第一個元素'wyp'print l[3][0] #輸出l的第四個元素的第一個元素2print l[0:3] #輸出l的第四個元素的第一個元素2print l[0:3] 輸出l的第四個元素的第一個元素2print l[0:3] 元素到第三個元素print l*2 #輸出兩個l連結在一起的清單print l+['.'] #輸出l與清單['.']連結在一起的清單
的元組tuple):用()來定義,方法與列表相似,唯一差別是不能二次賦值,所以不給例子。
Python的字典(dictionary):用{}來定義,定義方法像json,用起來像C++的容器map,方法在下給出示例
d = {1:'wyp', 'two':'is ', 3.0:'Coder'}
d['four'] = 'like'd[5] = 'farmer'print d #輸出整個字典dprint d[1] #輸出鍵為1的值'wyp'print d .keys() #輸出所有的鍵print d.values() #輸出所有的值
Python的型別轉換:目測用得不多,下面給例
int(x) #把x轉成intx型,直接取整,不管後面的尾數long(x) #把x轉成long型,直接取整,不管後面的尾數float(x) #把x轉成float型complex(x,y) #創建一個一個x為實部,y為虛部的複數chr(x) #轉成對應ascii碼x的字元ord(c) #轉成c對應的ascii碼unichr(x) 將字元改為) #把x轉成它的十六進位的字串oct(x) #把x轉成它的八進位的字串str(x) #把x轉換成字串eval(str # 將字串表達式str的值算出來tuple(s) #把序列型結構的s轉成元組list(s) #把序列型結構的s轉成列表dict(s) #將序列型結構且每個元素都是二元組的s轉成字典
-------------------------------------- -------------------------------------------------- -------------------------------------------------- -----
------------------------------------------- -------------------------------------------------- --------------------------------------------------
------------------------------------------------ -------------------------------------------------- ---------------------------------------------
Python的運算方法與C++非常相似,均分為算術運算、比較運算、邏輯運算和位元運算,在此基礎上加入了成員運算和身分運算,下面給出和C++有出入的範例
算術運算:多出來的運算子有**和//,因此多出了**=和//=給出範例
a ** b #即a^b,a的b次方a // b #先a/b然後再直接取整
比較運算:多出來的運算子是"",與"!="功能一樣,所以就不給範例
邏輯運算:這裡有點不同,邏輯運算全部用英文表示了,就是與(and)、或(or)和非(not),用法一樣就不給出示例了
位運算:與C++相同
成員運算:運算子為in和not in,以in為例如果一個元素在序列裡就是true,否則false,另外一個就是取反,下面給出範例
t = [1, 2, 3, 4] 1 in t #返回true1 not in t #返回false0 in t #返回false0 not in t #返回true
身份運算:運算符為is和notis,即判斷兩個單元,是否為同一個單元這裡發現一個python的小細節,它的0~256這些整數全部都是已經存放在內存中的,而其他的都是在定義的時候直接分配新內存,下面給出示例
a = -1b = -1a is b #值為false,這裡發現-1不是python預先存放在內存中的a += 1b += 1while (a is b): #在256之前都為true
a + 1 1 print str(a) + ', ' + str(b) + 'n'