擅长:python、mysql、java
<p>首先,我建议不要同时做<code>import decimal</code>和{<cd2>}。挑一个,然后用你需要的。通常,我使用<code>import whatever</code>,然后使用<code>whatever.what_is_needed</code>来保持名称空间的整洁。在</p>
<p>正如评论者已经指出的,没有必要为这么简单的事情创建一个类(除非这是家庭作业,而且你的老师需要它)。删除类声明,将您的<code>def __init__(self)</code>更改为<code>def main()</code>,并在当前实例化loan\u类的地方调用main。有关主函数的更多信息,请参见<a href="http://www.artima.com/weblogs/viewpost.jsp?thread=4829" rel="nofollow">Guido's classic post</a>关于它们。在</p>
<p>应检查输入值。一种简单的方法是使用try-except块将它们转换为十进制。代码可能看起来像:</p>
<pre><code>prin_str = raw_input('Please enter your loan amount: ')
try:
principal = decimal.Decimal(prin_str)
except decimal.InvalidOperation:
print "Encountered error parsing the loan amount you entered."
sys.exit(42)
</code></pre>
<p>要使其工作,您必须在系统出口()打电话。我通常把我的导入放在文件的开头。在</p>
<p>因为所有的输入都是同一类型的,所以可以很容易地将此函数设为通用函数,然后为每个输入调用该函数。在</p>
<p>在计算中似乎确实存在某种缺陷。解决这个问题是留给读者的练习。;—)</p>