我编写了一个程序,该程序使用while循环来确定投资在给定利率下翻倍所需的时间。投入将是年化利率,产出是投资加倍所需的年数,但无论我投入的是什么,我都会得到1:
def main():
I= eval(input("Enter your annualized interest rate: "))
i=0
z=1
while z<2:
i=i+1
z=(z*(1+I))
if z>=2:
print (i)
答案 0 :(得分:0)
您应该删除eval
并将其替换为int
或float
,具体取决于利率或整数:
I = float(input("Enter your annualized interest rate: "))
然后将百分比除以100:
z = z * (1 + I / 100.0)
您也不需要上一个if
语句,因为z
总是大于或等于2才能退出while
循环。
答案 1 :(得分:0)
@Selcuk的回答非常好,这是我接受的。 现在,由于我写了几行,这里有一些代码可以派上用场:
from sys import argv
def f(I, factor):
I = 1 + I/100.0
z = 1
years = 0
while z < factor:
z *= I
years += 1
return years
if __name__ == "__main__":
if len(argv) < 3:
print "usage: %s rate factor"
exit(1)
I = float(argv[1])
factor = float(argv[2])
print f(I, factor)