a=[[1,2,3],[4,5,6],[7,8,9]] i=0 j=0 c=0 #通过a[i][j]访问每个数字 for i inrange(3): for j inrange(3): if j<=2: print(a[i][j],end=' ') else: print(a[i][j],end='') print()
list0 = [1,3,2,4] list1 = [11,33,22] defsort(list): #冒泡排序 for i inrange(0,len(list)-1): for j inrange (0,len(list)-i-1): iflist[j]>list[j+1]: a=list[j] list[j]=list[j+1] list[j+1]=a returnlist defdump(list): #控制输出 for i inrange(0,len(list)): if i<len(list)-1: print(list[i],end=' ') else: print(list[i]) #测试 sort(list0) dump(list0)# 将排序后的列表输出 sort(list1) dump(list1)# 将排序后的列表输出
5 实现如下程序中的函数mul_matrix和函数dump_matrix
multiply实现对矩阵a和矩阵b进行相乘
def mul_matrix(a, b): …
打印矩阵x
def dump_matrix(x): … a = [[1,1],   [1,1]] b = [[1,2],   [3,4]] c = mul_matrix(a, b) dump_matrix(c) x = [[1,2,3],   [4,5,6]] y = [[1,4],   [2,5],   [3,6]] z = mul_matrix(x, y) dump_matrix(z)
defmul_matrix(a, b): n=0 c=[] for g inrange(len(a)): m=[] for i inrange(len(b[0])): for j inrange(len(a[0])): n+=a[g][j]*b[j][i]#计算元素n m.append(n)#将元素放入[]中 n=0#初始化 c.append(m) return c defdump_matrix(x): #打印矩阵 print('[',end='') for j inrange(len(x)): if j ==0: print(x[j],end=',\n') elif j<len(x)-1: print('',x[j],end=',\n') else: print('',x[j],end='') print(']') a = [[1,1], [1,1]] b = [[1,2], [3,4]] c = mul_matrix(a, b) dump_matrix(c)#打印矩阵 x = [[1,2,3], [4,5,6]] y = [[1,4], [2,5], [3,6]] z = mul_matrix(x, y) dump_matrix(z)#打印矩阵
defcreate(a):#创建一个联系人 b={} #按要求输入信息 print('name:',end=' ') b['name']=input() print('address:',end=' ') b['address']=input() print('phone:',end=' ') b['phone']=input() a.append(b) a[0]+=1 return a #传递a defdelete(a):#删除联系人 temp=input() for j inrange(1,a[0]): if a[j]['name']==temp: del a[j] a[0]-=1#人数减少 break#防止超出范围 return a defquery(a):#查询联系人 temp=input() for j inrange(1,a[0]): if a[j]['name']==temp: print(a[j]['name'],end=' ') print(a[j]['address'],end=' ') print(a[j]['phone']) return a deflistall(a):#列出所有联系人 for j inrange(1,a[0]): print(a[j]['name'],end=' ') print(a[j]['address'],end=' ') print(a[j]['phone']) return a defexit():#退出 quit() defbegin(a):#主程序 print("1. create person") print("2. delete person") print("3. query person") print("4. list all persons") print("5. quit") print("Enter a number(1-5):",end='') lime=int(input()) #分类讨论 if lime==1: a=create(a) elif lime==2: a=delete(a) elif lime==3: a=query(a) elif lime==4: a=listall(a) elif lime==5: exit() else: pass begin(a)#自己调用自己来保证不断循环 a=[]#初始化 i=1#计联系人数 a.append(i) begin(a)#进入程序
面向对象 编程练习1
1 编写Person类,能够通过如下测试代码
class Person: …
以下为测试代码
tom = Person(‘tom’, 10) tom.greet()
程序输出如下:
Hello, my name is tom, I’m 10 years old
以下为测试代码
jerry = Person(‘jerry’, 12) jerry.greet()
程序输出如下:
Hello, my name is jerry, I’m 11 years old
2使用面向对象的方法,重新实现通讯录的程序,实现提示如下:
class Person: 包括三个属性: name address phone 使用类描述一个人的所有信息 class AddressBook:  def __init__:    self.persons = [ ]  def addPerson:  def delPerson:  def queryPerson:  def listAllPerson:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
classPerson:#类 def__init__(self,name,age):#初始化 self.name = name self.age = age defgreet(self): print("Hello, my name is %s, I'm %d years old"%(self.name,self.age)) tom = Person('tom', 10) tom.greet() # 程序输出如下: # Hello, my name is tom, I'm 10 years old jerry = Person('jerry', 12) jerry.greet() # 程序输出如下: # Hello, my name is jerry, I'm 12 years old
classShape:#父类 def__init__(self, name): self.name = name classTriangle(Shape): def__init__(self, name, a, b, c): Shape.__init__(self, name)#继承父类 self.a = a self.b = b self.c = c defquery(self):#介绍自己 print('''This is triangle Sides is %d %d %d'''%(self.a,self.b,self.c)) defcircle(self):#输出边长 print('Circle is %d'%(self.a+self.b+self.c)) classSquare(Shape): def__init__(self, name, side): Shape.__init__(self, name)#继承父类 self.side = side defquery(self):#介绍自己 print('''This is square Sides is %d'''%(self.side)) defcircle(self):#输出边长 print('Circle is %d'%(self.side*4)) classRectangle(Shape): def__init__(self,name,width,height): Shape.__init__(self, name)#继承父类 self.width = width self.height = height defquery(self):#介绍自己 print('''This is square Sides is %d %d'''%(self.width,self.height)) defcircle(self):#输出边长 print('Circle is %d'%(self.width*2+self.height*2))
shapes = []#初始化 #下面三个变量用于计数 tr = 0 sq = 0 re = 0 whileTrue:#保证程序不断重复运行 command = input('> ') args = command.split()#将输入分为几个片段 #下面开始分支 if args[0] == 'help': #通过两个'''多行输出内容 print('''triangle name a b c square name side rectangle name width height query name count circle name quit''') if args[0] == 'triangle': triangle = Triangle(args[1],int(args[2]),int(args[3]),int(args[4])) shapes.append(triangle)#放入shapes中 tr+=1 if args[0] == 'square': square = Square(args[1],int(args[2])) shapes.append(square))#放入shapes中 sq+=1 if args[0] == 'rectangle': rectangle = Rectangle(args[1],int(args[2]),int(args[3])) shapes.append(rectangle))#放入shapes中 re+=1 if args[0] == 'query': for i inrange(len(shapes)): #遍历 当找到名字时 if shapes[i].name == args[1]: shapes[i].query() if args[0] == 'circle': for i inrange(len(shapes)): #遍历 当找到名字时 if shapes[i].name == args[1]: shapes[i].circle() if args[0] == 'count': print('''triangles %d square %d rectangle %d'''%(tr,sq,re)) if args[0] == 'quit': exit()