1 # 1.矩形与正方形两个类,求周长与面积。分别使用不继承与继承两种方式,并总结出继承的优势。
2 class Rectangle:
3 name="矩形"
4 def __init__(self):
5 self.a = 4
6 self.b = 3
7 def circumfere(self):
8 c=((self.a)+(self.b))*2
9 print("{}的周长为{}".format(self.__class__.name,c))
10 def area(self):
11 s=(self.a)*(self.b)
12 print("{}的面积为{}".format(self.__class__.name,s))
13
14 class Square():
15 def __init__(self):
16 self.a = 4
17 def circumfere(self):
18 c = (self.a) *4
19 print("正方形的周长为{}".format(c))
20 def area(self):
21 s = (self.a) **2
22 print("正方形的面积为{}".format(s))
23 s1=Rectangle()
24 s1.circumfere()#矩形的周长为14
25 s1.area()#矩形的面积为12
26 s2=Square()
27 s2.circumfere()#正方形的周长为16
28 s2.area()#正方形的面积为16
29
30 #继承
31 class Square2(Rectangle):
32 def circumfere(self):
33 self.b = self.a
34 self.__class__.name = "正方形"
35 super().circumfere()
36 def area(self):
37 self.b = self.a
38 self.__class__.name = "正方形"
39 super().area()
40 s3=Square2()
41 s3.circumfere()#正方形的周长为16
42 s3.area()#正方形的面积为16
1 # 2.编写一个分页显示类,初始化传入记录总数。希望可以通过设置每页记录数和页码,可以显示当前页的信息。
2 # 其中每页记录数与页码使用property实现。注意,如果页码设置不正确(如<1或者>最大页码),提示错误信息。
3 # 设计方法能够返回当前页显示的记录区间。
4 # Page(20)
5 # pagesize=5
6 # # 一共应该有4页
7 # currenPage=6
8 # show可以显示第三页的信息
9 # 这是第11-15条记录。。。。
10 class Page:
11 def __init__(self,s):
12 self.s=s
13 self.__pagesize=0
14 @property
15 def pagesize(self):
16 return self.__pagesize
17 @pagesize.setter
18 def pagesize(self,pagesize):
19 self.__pagesize=pagesize
20 def show(self,x):
21 if self.__pagesize>0:
22 a=self.s%self.__pagesize
23 b=self.s//self.__pagesize
24 if a==0:
25 maxpage=b
26 if x<1 or x>maxpage:
27 print("输入页数有误")
28 else:
29 print("共{}条记录,共{}页".format(self.s,maxpage))
30 print("这是第{}页,本页为{}-{}条信息".format(x,(x-1)*self.__pagesize+1,x*self.__pagesize))
31 else:
32 maxpage =b+1
33 if x<1 or x>maxpage:
34 print("输入页数有误")
35 else:
36 if x!=maxpage:
37 print("共{}条记录,共{}页".format(self.s, maxpage))
38 print("这是第{}页,本页为{}-{}条信息".format(x, (x - 1) * self.__pagesize + 1, x * self.__pagesize))
39 elif x==maxpage:
40 print("共{}条记录,共{}页".format(self.s, maxpage))
41 print("这是第{}页,本页为{}-{}条信息".format(x,(x -1) * self.__pagesize + 1, self.s))
42 else:
43 print("pagesize值不合法,应大于0")
44 p1=Page(20)
45 p1.pagesize=5
46 p1.show(4)
47 #共20条记录,共4页
48 #这是第4页,本页为16-20条信息
49
50 p2=Page(32)
51 p2.pagesize=6
52 p2.show(6)
53 #共32条记录,共6页
54 #这是第6页,本页为31-32条信息