**2**
2/1+3/2+5/3+8/5+…到第二十项
x=1
y=2
num=0
for i in range(1,21):
num=num+y/x
x,y=y,x+y
print(num)
**3**
① 图书馆类(Library)
成员方法:
borrow(),借阅图书
revert(),归还图书
② 图书类(Book)
成员变量:
图书名称(name)String类型
出版社(publisher)String类型
构造方法:
通过形参初始化图书名称(name)和出版社(publisher)
普通方法:
(1)设置getter和setter方法用于获取和设置类中的name变量的值;
(2)设置Equals方法,当且仅当书名(name)和出版社(publisher)均相等时,即为同一本书,输出”是同一本书”并返回True。
(3)设置toString方法,返回书名(name)和出版社(publisher)的信息,样式如下:
“书名:Java程序设计,出版社:清华大学出版社”
③ 馆藏图书类(CollectionBook),继承自Book类,Library类
成员变量:
图书编号(bNo)String类型
所在书库(stacks)String类型
是否借阅(isBorrow)boolean类型 图书状态为已借阅时,值为true
构造方法:
调用父类构造方法初始化书名(name)和出版社(publisher)信息,然后初始化图书编号(bNo),线路图书书库(stacks)和借阅状态(isBorrow)
普通方法:
(1)覆盖Library类中的borrow方法
如果图书状态为已借阅,则输出“对不起,该图书已借阅”,否则,修改该图书状态为已借阅,输出“借阅成功”
(2)覆盖Library类中的revert方法
如果图书状态是可借阅状态,输出“该图书已归还”,否则,修改图书借阅状态为未借阅,并输出“还书成功”
④ 通过main函数测试
(1)创建两个CollectionBook对象book1和book2,分别输出book1和book2,并调用其equals方法判断两个对象是否相等
(2)通过键盘输入整数,输入0,则对book1进行借阅,输入1,则对book1进行归还操作(要求调用类方法进行借阅归还操作)
class Library(object):
def borrow(self):
print("借阅图书")
def revert(self):
print("归还图书")
class Book(object):
def __init__(self,name,publisher):
self.name=name
self.publisher=publisher
def setter_name(self):
self.name=name
def getter_name(self):
return self.name
def Equals(self,book):
if(self.name==book.name and self.publisher==book.publisher):
print("是同一本书")
return(ture)
def toString(self):
print("书名:{},出版社:{}".format(self.name,self.publisher))
class CollectionBook(Library,Book):
def __init__(self,name,publisher,bNo,stacks,isBorrow):
self.bNo=bNo
self.stacks=stacks
self.isBorrow
def borrow(self):
if self.isBorrow=="借阅图书"
print("对不起,该图书已借阅")
else:
self.isBorrow="已借阅"
print("借阅成功")
def revert(self):
if self.isBorrow=="归还图书"
print("该图书已归还")
else:
self.isBorrow="未借阅"
print("还书成功")
if __name__ == '__main__':
book1 = CollectionBook(1, "python", "上海出版社", "计算机", False)
book2 = CollectionBook(2, "python", "上海出版社", "计算机", False)
book1.Equals(book2)
num = input("请输入整数,0对book1进行借阅,1对book1进行归还操作:")
if num == '0':
book1.borrow()
if num == '1':
book1.revert()
在这里插入代码片 | |
---|---|