2013-01-08 109 views
-1

我在Python 2.7简单的for循环和打印

我做了一些非常基本的练习我工作,这是我的代码:

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个步骤被一个接一个地打印出来。

我该如何解决这个问题?

回答

7

可以移动打印语句退出循环:

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

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

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

+0

那么简单。多谢。 – nutship

3

您的打印语句位于for循环中。它需要在循环之外。

您可以通过减少print语句的缩进来实现这一点,从而将其带入循环之外。

for i in range(10): 
     principal = principal * (1 + apr) 
print "The value in 10 years will be: $", principal #See the indentation here 
4

在循环的外部和之后移动打印件。或者完全避免它:

principal *= (1 + apr)**10 
print print "The value in 10 years will be: $", principal 
8

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

因此,为了使打印语句跳出循环(如前面的答案),只是减少缩进

1

只是迪登print语句把它外循环。

而且你应该考虑改变 “输入” 到 “的raw_input” 和围绕它包装 “INT()”

principal = raw_input("Enter the principal: ") 
try: 
    principal = int(principal) 
except ValueError: 
    print "Warning ! You did not input an integer !" 
+0

感谢您的建议。 – nutship