【发布时间】:2016-03-04 03:44:53
【问题描述】:
每当我运行它时,它只会继续获得p 值,而不是计算出的帐户未来值?!
def main():
p=eval(input("Enter in the present value of the account: "))
i=eval(input("Enter in the monthly interest rate(%): "))
I=eval(str(i//100))
t=eval(input("Enter the number of months that that the money will be in the account: "))
print(futureValue(p, I, t),"Is the future value of your account!")
def futureValue(p, I, t):
return p*((1 + I) ** t)
main()
【问题讨论】:
-
对于这一切的热爱是神圣的,不要
eval原始用户输入。即使我们忽略整个“安全问题的定义”这件事,它也意味着用户的小错别字可能会以您无法开始预测或处理的方式完成完全出乎意料的事情。如果目标是转换为int或float或decimal.Decimal,请使用它们的构造函数。如果目标是接受int或float或任何其他Python 文字,请使用ast.literal_eval,它接受Python 文字,但不接受任意代码。
标签: python function python-3.x math