问题描述:
用Python语言输出365行的《复利数据表》:
(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
我总共写了六篇才把该程序写完:
实际上就写了两行源代码:
for i in range(1,366) :
print( "(1+0.01) ^", i, "=", round(1.01**i, 2) )
学会了这种编程思路,改用其它编程语言实现也会非常容易,比如用C#语言实现的版本:
for (int i = 1; i < 366; i++)
Console.Out.WriteLine("(1+0.01) ^ " + i + " = "
+ Math.Round(Math.Pow(1.01, i), 2));
这里再把要点总结一下:
1)需要提醒的是我这里的代码全部可以在Python 3.0以上版本通过,在2.7版本时语法有不一样的地方,需要修改才行。
2)复杂的问题要采用分而治之的办法,把一个大的问题拆解为一些小的问题,逐个击破后,每次进步一点点,不断迭代来逼近最终的结果。
3)你只要明白了《零基础学编程002:Hello World》,就会知道引号内的内容称为字符串,print可以输出字符串,另外还可以输出浮点数。
4)我们非常熟悉“加+、减-、乘*、除/”的运算符,Python中还支持**运算符,这里是两个乘号,表示乘方运算。1.01**3 表示1.01的3次方。
5)变量的运用,解决了第3行的输出,只需要把变量的值换一下,就可以输出其它行的内容,而print语句并不需要修改。这样程序代码可以重用,还不容易出错。
6)循环语句for的运用,可以让变量在某个范围内变化,重复执行N次。循环是计算机编程中的一种重要结构,实际上最容易理解的就是顺序结构,即代码从上到下依次执行。
7)round函数,可以把数四舍五入。
8)range函数,可以产生一个从1变到365的列表。
还需要提醒程序员新手要非常注意的地方,就是严格区分全角、半角标点符号,只要不是出现在字符串里,其它的地方都是半角的标点符号,否则程序就会出错。新手在切换输入法时的疏忽,经常会输入全角的标点,甚至是全角的空格!
以后的内容预告:
想试着把复利数据表的曲线图画出来,类似下面这张图:
这张图是我用Excel画的,我准备挑战一下,用Python来实现它。虽然我学过了N种语言,但如何用Python画图仍然是一无所知,准备使用Google搜索和英语技能来逐步解决这个问题。
另外,我快速用C#写了一个Windows上的笑来投资演小程序,也准备用Python示范一下。
--- END ---