零基础学编程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 条评论
登录 后参与评论

相关文章

来自专栏编程

Python教学——第六天

今天我们要说说dict,在第四天里我们说到了tuple,list也知道了list比tuple好用多了,至少能添加删除还能修改里面的值 在Python里,我们知道...

1927
来自专栏黑泽君的专栏

linux系统下,警告:warning: implicit declaration of function ‘gets’ [-Wimplicit-function-declaration] 和 war

gets()函数的基本用法为: char *gets(char *s); 该函数的参数是一个字符数组,该函数的返回值也是一个字符数组。

3351
来自专栏从流域到海域

《Java程序设计基础》 第4章手记

《Java程序设计基础》 第4章手记 本章主要内容 - 语句和复合语句 - 分支结构 - 循环结构 - 跳转语句 这四部...

1998
来自专栏noteless

[零]java8 函数式编程入门官方文档中文版 java.util.stream 中文版 流处理的相关概念

https://docs.oracle.com/javase/8/docs/api/

2241
来自专栏CDA数据分析师

产品运营数据分析——SPSS数据分组案例

当我们的样本量过大,譬如以前讲过的,EXCEL2010最大只支持1048576行、16384列,尤其是当行数大于30万,一般的办公电脑处理都比较吃力,所以推荐做...

2475
来自专栏java一日一条

Python算法:如何解决回文索引问题

对于这个问题野蛮的解决方案是遍历S中每个单词大小的窗口并检查它们是否是回文,如下所示:

902
来自专栏机器之心

数据科学入门必读:如何使用正则表达式?

选自Dataquest 作者:Alex Yang 机器之心编译 参与:Panda 正则表达式对数据处理而言非常重要。近日,Dataquest 博客发布了一篇针对...

34310
来自专栏申龙斌的程序人生

零基础学编程013:import让你飞起来

在《零基础学编程012:画出复利曲线图》这篇文章中只需6行语句就画出复利曲线图,前两行语句全是import。 import numpy as np import...

2984
来自专栏每周一脱topic

Effictive python学习总结连载(1)

python从读研开始就在用了,拿来做过web后台、安全分析、爬虫、测试框架等等,挺强大的。最近借放假和看书和整理的机会,系统的总结下。主要是2方面:一个是书或...

2062
来自专栏C语言及其他语言

[编程经验]C语言free释放内存后为什么指针里的值不变?竟然还可以输出?

今天你家范儿给大家带来一个的东西——关于C语言为什么释放指针后,指向这块内存的指针的值不变问题的编程经验!!行了,咱们话不多少,直接上主食。 ...

4078

扫码关注云+社区