python和數據結構
阿新 • • 發佈:2017-07-23
大學 bsp clas 解決 lis turtle 多個 all 發生
集合常用操作
在緊張的備考日語的過程中抽時間刷一下北京大學的python數據結構。查缺補漏。
/整除 >>>divmod(9,5) (1,4) /復數 >>>import cmath >>>(1+2j)*(1+3j) (-5+5j) >>>(1+4j).imag 4.0 >>>(1+4j).real 1.0
早就已經知道的C語言要想使用一個變量必須先初始化,Python的變量機制是引用數據對象,例如賦值語句‘a = 0’是創建a這個變量然後指向數值0,變量可以指向任意一個數據對象,變量的類型會隨著變量的變化而變化。
1 >>>a = 0 2 >>>type(a) 3 <class ‘int‘> 4 5 >>>a = ‘0‘ 6 >>>type(a) 7 <class ‘str‘>變量類型
由於變量的上一個性質,變量間的指向會因為前一個變量發生變化而變化。
1 >>>alist = [1,2,3] 2 >>>blist = [alist] * 3 3 >>>blist 4 [[1,2,3],[1,2,3],[1,2,3]] 5 >>>alist[1] = ‘變量引用a‘ 6 >>>blist 7 [[1,‘a‘,3],[1,‘a‘,3],[1,‘a‘,3]]
Python集合(set)是不重復元素的無序組合。
1 >>>a = {1,2,3} 2 >>>b = {2,3,4} 3 >>>a|b 4 {1,2,3,4} 5 >>>a&b 6 {2,3} 7 >>>a-b 8 {1} 9 >>>b-a 10 {4) 11 >>>a^b 12 {1,4} 13 >>>/ < ,<= ,> ,>= 子集,真子集,超集,真超集
調用函數:所有可以調用的事物成為callable。函數的參數寫在括號裏,多個參數之間用逗號隔開。如果不加括號則表示對他的調用。
1 >>>import math 2 >>>a = math,sqrt(9) 3 >>>a 4 3.0 5 >>>a = math.sqrt 6 >>>a(9) 7 3.0函數調用
從鍵盤輸入:input()
1 /默認輸入的數據格式為str 2 >>>name = input(‘please input your name:‘) 3 please input your name:delete 4 >>>a,b = input().split() 5 1 2 6 >>>type(a) 7 <class ‘str‘>input()
棧、隊列和樹:具體的不再羅列,參見PDF。
遞歸:在程序中將問題不斷縮減成小問題,通過不斷調用自身來達到解決問題的目的。
遞歸三定律:
1,遞歸算法必須有一個基本結束條件(最小規模問題的直接解決)
2,遞歸算法必須能改變狀態向基本結束條件演進(減小問題規模)
3,遞歸算法必須調用自身(解決減小了規模的相同問題)
1 improt turtle 2 t = turtle.Turtle() 3 w = turtle.Screen() 4 5 def draw(_t , len): 6 if len > 0: 7 _t.forward(len) 8 _t.right(90) 9 draw(_t,len-5) 10 11 draw(t,100)利用遞歸畫圖
以上。
python和數據結構