-1

我正在使用 Python 2.7

我正在做一些非常基本的练习,这是我的代码:

def main():
    print """Program computes the value of an investment 
    carried 10 years into the future"""
    principal = input("Enter the principal: ")
    apr = input("Provide (in decimal format) the annual percentage rate: ")
    for i in range(10):
        principal = principal * (1 + apr)
        print "The value in 10 years will be: $", principal

main()

代码正在运行,但我希望输出只是最终结果。我现在得到的是一个接一个地打印循环的所有 10 个步骤。

我该如何解决?

4

5 回答 5

8

Python 对缩进敏感;也就是说,它使用文本块的缩进级别来确定循环内的代码行(例如,而不是 {} 大括号)。

因此,为了将打印语句移出循环(如上一个答案),只需减少缩进

于 2013-01-08T15:34:34.100 回答
7

您可以将打印语句移出循环:

for i in range(10):
    principal = principal * (1 + apr)

print "The value in 10 years will be: $", principal

这意味着 principal 的值将在 for 循环内计算,然后 principal 的值将被打印(仅一次),因为它在 for 循环之外。

于 2013-01-08T15:33:17.863 回答
4

将打印移出循环后。或者干脆完全避免它:

principal *= (1 + apr)**10
print print "The value in 10 years will be: $", principal
于 2013-01-08T15:34:24.937 回答
3

您的 print 语句位于 for 循环内。它需要在循环之外。

您可以通过减少 print 语句的缩进来做到这一点,从而将其置于循环之外。

for i in range(10):
        principal = principal * (1 + apr)
print "The value in 10 years will be: $", principal #See the indentation here
于 2013-01-08T15:34:15.887 回答
1

只需减少 print 语句以将其放在循环之外。

此外,您应该考虑将“input”更改为“raw_input”并将其包装在“int()”周围

principal = raw_input("Enter the principal: ")
try:
    principal = int(principal)
except ValueError:
    print "Warning ! You did not input an integer !"
于 2013-01-08T15:43:51.440 回答