您好,我正在 HyperSkill 的信用计算器项目工作,在检查信用计算器最后阶段的代码结果时,当我尝试检查它时,我收到“内部系统检查错误”。该代码正在我的 IDE(pycharm) 上运行,但不知何故出现“内部系统检查错误”。您能帮忙解决一下吗?
项目描述:本阶段需要实现以下功能:
计算差异化支付。为此,用户可以运行指定利息、周期数和信用本金的程序。能够计算与前一阶段相同的年金支付值(本金、期数和支付金额)。用户使用命令行参数指定所有已知参数,因此将会有一个未知参数。这是用户想要计算的值。处理无效参数。如果参数无效,最好显示错误消息“参数不正确”。程序的最终版本应该可以从命令行运行并解析以下参数:
--type,表示支付类型:“annuity”或“diff”(有区别的)。如果 --type 既没有指定为“annuity”也没有指定为“diff”,或者根本没有指定,则显示错误消息。
python Creditcalc.py --principal=1000000 --periods=60 --interest=10 参数错误
--付款,指每月付款。对于--type=diff,每月的付款额不同,因此我们无法计算期数或本金,因此它与-- payment 的组合也是无效的:
python Creditcalc.py --type=diff --principal=1000000 --interest=10 -- payment=100000 参数错误
--principal 用于计算两种类型的付款。您可以通过了解利息、年金付款和期数来获得其价值。
--periods 参数表示偿还信用所需的月数和/或年数。它是根据利息、年金支付和本金计算的。
--利息指定时不带百分号。请注意,它可以接受浮点值。我们的信用计算器无法计算利息,因此这些参数不正确:
python Creditcalc.py --type=annuity --principal=100000 -- payment=10400 --periods=8 参数错误
我的代码:
# Stage 4/4 of the credit calculator project
import sys
import math
args = sys.argv
if len(sys.argv) == 5:
type1 = sys.argv[1].split('=')[1]
credit_principal = int(sys.argv[2].split('=')[1])
periods = int(sys.argv[3].split('=')[1])
credit_interest = float(sys.argv[4].split('=')[1])
nominal_interest = credit_interest / (12 * 100)
if type1 == 'diff' or type1 == 'annuity' and credit_principal > 0 \
and credit_interest > 0 and periods > 0:
if type1 == "diff":
sum_diff_payments = 0
for i in range(1, periods + 1):
montly_diff_payment = math.ceil(credit_principal / periods + nominal_interest * (
credit_principal - credit_principal * (i - 1) / periods))
sum_diff_payments += montly_diff_payment
print(f"Month {i}: payment is {montly_diff_payment}")
print("\nOverpayment =", int(sum_diff_payments - credit_principal))
守着星空守着你
慕斯709654
相关分类