我们仍要继续解决这个问题:如何用Python打印这篇枯燥的《复利数据表》?
(1+0.01) ^ 1 = 1.01 (1+0.01) ^ 2 = 1.02 (1+0.01) ^ 3 = 1.03 ... ... (1+0.01) ^ 364 = 37.41 (1+0.01) ^ 365 = 37.78
学完《零基础学编程007:FOR循环》之后,我们已经可以输出这样五行数据:
(1+0.01) ^ 361 = 36.30913774096189 (1+0.01) ^ 362 = 36.672229118371504 (1+0.01) ^ 363 = 37.03895140955522 (1+0.01) ^ 364 = 37.409340923650774 (1+0.01) ^ 365 = 37.78343433288728
但有一个明显的问题,电脑计算得太太太精确了,每个数后面都拖着10多位的小数,而我们只要两位小数就够了,怎么办呢?
编程新手到这里可能就束手无策了,此时《“零基础学编程”都需要哪些基础?》里提到的2项技能就要发挥作用了。
1)英语基础
一种容易想到的办法是对第3位的小数部分进行四舍五入的运算,在英语里四舍五入叫round,小数在计算机的世界里经常被称为浮点数float。
2)搜索技能
现在需要google出场了,输入关键词“python round float”:
如果没有V**,只能用某度试试了,你自己对比一下搜索结果吧。点击文末的“阅读原文”到stackoverflow上看看那篇排在第一位的详细答案有多详细吧,纯英文的。
3)立即到python 的IDLE中试试:
>>> round(36.30913774096189, 2) 36.31 >>> round(36.672229118371504, 2) 36.67
效果不错,大概意思很容易猜出来,round(x, 2)就是把x这个数保留两位小数。
4)把第7课《零基础学编程007:FOR循环》的代码抄过来,稍加修改,在python IDLE环境中执行一下,看看效果:
for i in [361,362,363,364,365] :
print( "(1+0.01) ^", i, "=", round(1.01**i, 2) )
小结:
1)英语基础好绝对大有帮助
2)会用搜索,能够快速定位到有用的资源,节省大量的时间
3)立即在python IDLE中尝试,帮助快速理解代码的作用
4)知道了round(x, 2)函数的意思
5)多看看资料,实际上round(x)就是四舍五入的取整
6)联系到电子表格EXCEL,你也用过ROUND(x)函数吧?道理都是一样的,许多编程语言中的取整函数都叫round
7)在stackoverflow的原文中还提到了另一种更为通用的解决办法,是用format函数,这里先不介绍了
--- END ---