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()#周长
42 s3.area()#正方形的面积为16
# 2.编写一个分页显示类,初始化传入记录总数。希望可以通过设置每页记录数和页码,可以显示当前页的信息。
# 其中每页记录数与页码使用property实现。注意,如果页码设置不正确(如<1或者>最大页码),提示错误信息。
# 设计方法能够返回当前页显示的记录区间。
# Page(20)
# pagesize=5
# # 一共应该有4页
# currenPage=6
# show可以显示第三页的信息
# 这是第11-15条记录。。。。
class Page:
def __init__(self,s):
self.s=s
self.__pagesize=0
@property
def pagesize(self):
return self.__pagesize
@pagesize.setter
def pagesize(self,pagesize):
self.__pagesize=pagesize
def show(self,x):
if self.__pagesize>0:
a=self.s%self.__pagesize
b=self.s//self.__pagesize
if a==0:
maxpage=b
if x<1 or x>maxpage:
print("输入页数有误")
else:
print("这是第{}页,本页为{}-{}条信息,共{}页".format(x,(x-1)*self.__pagesize+1,x*self.__pagesize,maxpage))
else:
maxpage =b+1
if x<1 or x>maxpage:
print("输入页数有误")
else:
if x!=maxpage:
print("这是第{}页,本页为{}-{}条信息,共{}页".format(x, (x - 1) * self.__pagesize + 1, x * self.__pagesize,maxpage))
elif x==maxpage:
print("这是第{}页,本页为{}-{}条信息,共{}页".format(x,(x -1) * self.__pagesize + 1, self.s,maxpage))
else:
print("pagesize值不合法,应大于0")
p1=Page(20)
p1.pagesize=5
p1.show(4)#这是第4页,本页为16-20条信息,共4页
p2=Page(32)
p2.pagesize=6
p2.show(6)#这是第6页,本页为31-32条信息,共6页