1. 程式人生 > >python和數據結構

python和數據結構

大學 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和數據結構