零基础学编程011:复利数据表问题(总结)

问题描述:

用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 ---

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2017-01-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Spark学习技巧

Flink DataStream编程指南

Flink程序是执行分布式集合转换(例如,filtering, mapping, updating state, joining, grouping, defi...

5827
来自专栏nummy

ECMAScript 6 特性ECMAScript 6 特性

ECMAScript 6,也被称做ECMAScript 2015,是ECMAScript标准的下一个版本。这个标准预计将于2015年6月被正式批准。ES6是这门...

601
来自专栏分布式系统和大数据处理

Go语言Tips

转型到Go以后,因为语言的不熟悉,以往很常见的一些操作有时候也需要去Google一下。这里将一些结果记录下来,方便日后查阅。

1072
来自专栏LEo的网络日志

go语言坑之并发访问map

35210
来自专栏Android开发实战

Android避免内存溢出(Out of Memory)

强引用:强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误...

903
来自专栏Albert陈凯

Scala的编程规范与最佳实践

应用层 80/20原则:80%的代码是 纯函数,其余如处理IO,数据库,用户交互等方面的20%的代码也应该尽量轻量级 培养面向表达式的编程思维,培养函数式编...

3165
来自专栏Golang语言社区

Go 1.9 sync.Map揭秘

目录 [−] 有并发问题的map Go 1.9之前的解决方案 sync.Map Load Store Delete Range sync.Map的性能 其它 在...

4087
来自专栏何俊林

从面试题中看Java的Reference(引用)

前言:四大引用,是一个古老的知识,今天看下 Harlber 授权公众号独家推送的文章, Harlber 的简书地址 :http://www.jianshu.co...

25710
来自专栏用户画像

1.2.4 计算机的工作过程

3)用程序的首地址从存储器中取出第一条指令,经过译码、执行等步骤控制计算机各功能部件协同运行,完成这条指令功能,并计算下一条指令的地址。

693
来自专栏互联网开发者交流社区

深入.NET平台和C#编程

1-1:Microsoft.NET框架概述 a.Microsoft.NET介绍 .NET的战略目标是在任何时候(when),任何地方(where)任何工具...

1171

扫码关注云+社区