python-3.x - 创建的类不会通过断言检查
问题描述
我必须创建一个类,并在其中创建 3 个方法。我们得到了一堆断言检查,我似乎无法通过第一个。这个方法没有通过,所以我确信另外两个也不会(另外两个使用我从第一个得到的值)。我错过了什么吗?
class Loan(object):
"""Calculates information regarding Loans."""
def __init__(self,principal,rate,time):
self.principal = principal
self.rate = rate
self.time = time
def calculate_monthly_payment(self):
"""Calculates monthly loan payments"""
part_1 = self.rate*((1+self.rate)**self.time)
part_2 = ((1+self.rate)**self.time)-1
monthly_pmt = self.principal*(part_1//part_2)
return monthly_pmt
我得到了断言检查:
# Testing Loan
loan1 = Loan(100, 0.1, 10)
assert math.isclose(loan1.principal, 100, abs_tol=0.00001), "{} != {}".format(loan1.principal, 100)
assert math.isclose(loan1.rate, 0.1, abs_tol=0.00001), "{} != {}".format(loan1.rate, 0.1)
assert math.isclose(loan1.time, 10, abs_tol=0.00001), "{} != {}".format(loan1.time, 10)
assert math.isclose(loan1.calculate_monthly_payment(), 16.274539488251154, abs_tol=0.00001), "{} != {}".format(loan1.calculate_monthly_payment(), 16.274539488251154)
断言错误:
File "main.py", line 161, in main
assert math.isclose(loan1.calculate_monthly_payment(), 16.274539488251154, abs_tol=0.00001), "{} != {}".format(loan1.calculate_monthly_payment(), 16.274539488251154)
AssertionError: 0.0 != 16.274539488251154
解决方案
您正在使用整数除法 ( //
),您希望/
在倒数第二行中使用浮点除法 ( )。part1 // part2
舍入为零,因此您返回零,这是不正确的。
推荐阅读
- nativescript - 应用程序启动时 - 如何设置默认时区?(本机脚本)
- python-3.x - 反转熊猫中的多标签二值化器
- xml - XPath 检索模式中选择的节点名称
- php - PHP move_uploaded_file()函数不起作用
- woocommerce - Woocommerce:如何自定义产品类别小部件以显示所选类别?
- python - Why is datetime.now() set to a fixed moment in my module?
- elasticsearch - 安装 Elasticsearch 7 时出错 - 依赖项失败
- python - 如何创建这两个单独的极坐标图?
- css - .green .progress .inner .water { top: 25%; } meaning?
- c# - ASP.NET MVC 站点允许匿名用户但在登录时以登录用户的 AD 身份运行?