我最近提交了这个作业,但无法得到任何问题的代码工作。我很想知道我可以做些什么来确保我下一次做对。无法获得输出Python类和函数代码
问题1(5分) 创建一个名为'InterestCalculator'的基类/父类。 创建一个名为'CICalculator'的子类。 'CICalculator'类将只有一个家长,'InterestCalculator'。创建一个名为'SICalculator'的子类。 'SI'类只有一个家长,'InterestCalculator'。 父类需要有一个初始化方法,该方法将初始化 计算和存储兴趣所需的所有值。
子类'CICalculator'和'SICalculator' 必须实现'calcfinalval'方法,该方法将计算每种情况下的最终值 。复合利息由下式给出A = p *(1+(r /(n * 100)))^(n * t)其中p是本金额,r是利率,t是时间年,n是每年复利的次数,A是t年后的总金额。 假设n = 2.
简单兴趣由下式给出:A = p(1+(r * t/100)其中p是委托人, r是利率,t是年的时间,A是经过T年总量 。
一旦所有的类都被定义,调用计算并打印 终值必须遵循下面的代码。
c = CICalculator(2,0.1,1000)
c.calcfinalval()
print c.finalval
s = SICalculator(2,0.1,1000)
s.calcfinalval()
print s.finalval
#解决方案1
class InterestCalculator:
def __init__(self, A, p, r, y, t):
self.A = A
self.p = p
self.r = r
self.y = y
self.t = t
def calcfinalval(self):
return "Interest Rates"
class CICalculator(InterestCalculator):
def __init__(self, A, p, r, y, t):
self.A = self.p*(1+(self.r/(self.t*100)))^(self.t*self.y)
class SICalculator(InterestCalculator):
def __init__(self, A, p, r, y):
self.A = self.p(1+(self.r*self.y/100)
c = CICalculator(2,0.1,1000)
c.calcfinalval()
print c.finalval
s = SICalculator(2,0.1,1000)
s.calcfinalval()
print s.finalval
问题2(5分) 队列如下FIFO(先入先出)。 FIFO是第一个添加的元素是第一个可以检索的元素。考虑 一个值为[1,2,3]的列表。创建一个名为MyQueue的类,该类将有两个方法:queueadd和queueretrieve分别从列表中按FIFO顺序添加和检索元素 。每次功能调用后, 将打印列表的内容。将7添加到队列中,然后按照 FIFO规则检索元素。
您对级呼叫将作为如下 A = [1,2,3] Q = myQueue中的(a) q.queueadd(7) q.queueretrieve()
输出屏幕应该类似于
1 2 3 7
2 3 7
3 7
7
#2溶液
class MyQueue:
def __init__(self):
self.in_stack = []
self.out_stack = []
def queueadd(self, obj):
self.in_stack.append(obj)
def queueretrieve(self):
if not self.out_stack:
while self.in_stack:
self.out_stack.append(self.in_stack.pop())
return self.out_stack.pop()
a = [1,2,3]
q = MyQueue(a)
q.queueadd(7)
q.queueretrieve()
你测试了你的代码吗?有很多错误。我怀疑主持人很快就会出现并将你的问题过于宽泛。我会推荐测试代码,阅读错误信息,相应地修改它,然后 - 如果你仍然无法弄清楚 - 发布1 *特定的问题(即不是完整的作业问题) – Tom