零基础学编程005:打印一行复利数据

问题

上次文章《集成开发环境IDE》里留了一道练习题:

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

怎样解题

初学者完成这样的任务还是相当有难度的,但不要紧,做练习的过程就是学习并理解编程思维的最有效手段。

记得有一位黑客推荐过《怎样解题》这样一本书,写程序与解数学题有相似之处。遇到一个复杂的问题时,首先要将问题分解和简化,然后逐步逼近最终的问题。以后在编程的过程中,还要学习算法和数据结构都是为了掌握这些解题的思路和技巧。当了解的定式越来越多后,编程的思路就越开阔。

简化

比如上面的问题,总共有365行数据,我们只需要会打印其中的一行,再按照这种思路打印其它364行即可。这里随便取一行,假设是第3行。现在的问题就变为:如何打印第3行?

(1+0.01) ^ 3 = 1.03

这样问题是不是简化了许多?

进一步将问题分解

(1)输出等号左侧内容

根据等号,可以拆为两个部分,左边就是一串普通的文本。在最早的《Hello World》里就学过了,这里复习一下:

print( "(1+0.01) ^ 3" )

注意这里用的是Python 3的语法,在print后面必须有小括号,引号内的内容会原封不动地输出。

(2)输出等号右侧内容

在《Hello World》这一篇文章里介绍过计算2**10000,即2的1万次方,而这里我们只是计算1.01的3次方,简单吧?代码就是这样的:

print( 1.01**3 )

最后,把左侧、等号、右侧放在一起用print输出,即:

print( "(1+0.01) ^ 3", "=", 1.01**3 )

初学者一定要在集成环境IDLE中把这行代码敲上一遍,因为标点符号也不能错!执行的效果:

是不是与我们期望的结果已经很像了?只不过1.0303010000000001实在是太太太精确了,而我们只想显示两位小数1.03就够用了。这个问题暂时超过了我们当前正在学习的内容,以后再说。

逼近最终的问题

我们现在已经能够输出第3行了,我们再照这样把其它364行写出来?思路是对的,但计算机擅长做重复的事,可以用循环语句来彻底解决这个问题。只需要加一行语句即可,而不用辛苦地抄上364遍。敬请关注以后的内容。

--- END ---

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

原文发表时间:2016-12-27

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

Python进阶系列连载(7)——生成器(下)

作者:王大伟 Python爱好者社区唯一小编 博客:https://ask.hellobi.com/blog/wangdawei 如果还没看过我的入门连载部分,...

1917
来自专栏java一日一条

编写高质量代码的思考

最近在看《代码大全》,可以说是一本软件开发的百科全书,特别厚,但是干货也很多。平时写代码,代码规范是一个最低的要求(很多老代码连最低要求都达不到),为什么要这样...

842
来自专栏Python研发

设计模式 -- 常用设计模式

                                  ——可复用面向对象软件的基础

2421
来自专栏Java编程技术

UML建模(类图)

类图是面向对象系统建模中重要的图,是定义其它图的基础。类图主要是用来展现软件系统中的类、接口以及它们之间的静态结构。

872
来自专栏Android机动车

如何用五点教会你Python高效编程

我已经使用Python编程有多年了,即使今天我仍然惊奇于这种语言所能让代码表现出的整洁和对DRY编程原则的适用。

893
来自专栏Python爬虫与算法进阶

爬虫之全站爬取方法

其实这个很好理解。比如说知乎,一个大V有100W粉丝,从这个大V出发,抓取粉丝的粉丝,一直循环下去。(可能是个死循环)

2333
来自专栏机器之心

这些Python代码技巧,你肯定还不知道

人们还经常把 Python 笑称为「可执行伪码(executable pseudocode)」。但是,当你可以编写这样的代码时,很难去反驳这种言论:

1123
来自专栏深度学习自然语言处理

【收藏】这些Python代码技巧,你肯定还不知道

人们还经常把 Python 笑称为「可执行伪码(executable pseudocode)」。但是,当你可以编写这样的代码时,很难去反驳这种言论:

663
来自专栏企鹅号快讯

Python 相较于Java 而言,有什么优势?

最近在后台,有很多的同学私聊我说,Python和Java.,哪个具有前景呢?今天我们就来简单的讲一下这两者的区别: 我认为C, Java跟Python都是非常成...

2306
来自专栏向治洪

Python高效编程技巧

###Python高效编程技巧 如果你发现一个好的程序库,符合你的要求,不要不好意思————大部分的开源项目都欢迎捐赠代码和欢迎提供帮助——即使你不是一个Pyt...

2205

扫码关注云+社区