首页 > 代码库 > python和数据结构

python和数据结构

  在紧张的备考日语的过程中抽时间刷一下北京大学的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和数据结构