零基础学编程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 ---
- 2017数据科学领域15大热门GitHub项目
- 简单分页的性能优化
- Flash/Flex学习笔记(42):坐标旋转
- 分布式监控系统Zabbix-完整安装记录 -添加端口监控
- Flash/Flex学习笔记(40):弹性运动续--弹簧
- 表格样式—粗边框细表格线
- 分布式监控系统Zabbix--完整安装记录 -添加apache监控
- Flash/Flex学习笔记(38):缓动动画
- 把EmEditor改造成简单的Word
- centos7下FFmpeg环境部署记录
- Mac下使用rz、sz远程上传下载文件的配置记录
- 写文件
- Mac下通过VMware Fusion安装centos虚拟机操作记录
- 进程管理利器-supervisor部署记录
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Mybatis-Generator 代码生成器的使用
- 提高数据分析工作效率-Sublime如何设置默认打开文件格式
- 使用 freemarker 制作代码生成器
- 假期闲的慌,不如做一点SQL基础练习吧
- Vue 中全局过滤器的使用
- 游戏-CSP201712-2-Java
- Mybatis generator 生成 Mapper 方法不全
- Vue 中使用 JQuery 插件不起作用
- 公共钥匙盒-CSP数组排序练习
- 疫情这么严重,还不待家里学Numpy和Pandas?
- CSP-201812-2-小明放学-Java
- Mac怎么设置docker国内镜像源来加速下载?
- 适合数据分析面试笔试入门的编程题
- 女同事问狗哥什么是线程池的阻塞队列?
- BAT某厂数据分析终面面经