大家好,每N周一坑栏目又来啦?
今天的坑是一个很简单但很实用的小程序:
房贷计算器
因为是“刚需”,所以网上早有无数的版本。有人已经用过,有人以后可能会用。有没有想过,类似这种小工具,其实你自己也可以实现。
输入:
- 贷款金额
- 贷款期限
- 标准年利率
- 利率浮动倍数
输出: 两种贷款方式 等额本息
- 每月还款
- 总利息
等额本金
- 首月还款
- 每月递减额
- 总利息
效果:
我们只需要实现功能,并不需要推导数学公式,所以你用现成的公式即可。我这里就不把公式给出了,因为搜索是开发的重要技能,也其实是今天这个坑的重点。
完成之后,可以跟网上的已有工具对比下正确性。
附加题:
- 做成 GUI 版本
- 做成网页版(JS)
经常有人会说,“×××这个功能网上早就有啦”,“用×××不就可以了”……话是没错,可我们是在学编程哎,不就是要靠着一个个小练习积累经验嘛。看别人程序写得好,是因为你看到的也许是人家第几十万行代码。
不光是房贷计算器,类似的一些小工具,都可以作为初级练手的小程序,甚至写成网页/App/小程序还可能赚钱。亲自做一做才知道未必是想象中那么容易,也会遇到很多小问题。
参考代码将在下周给出,也可学习其他同学在留言中提交的代码。
期待各位同学提交解答。
提交代码可以使用 paste.ubuntu.com 或
codeshare.io 等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。
往期问题可通过公众号菜单栏“课外辅导”栏目中进入查看。
【解答】生成九宫格图片
上次的题目 生成九宫格图片,是对图像处理以及 PIL 库的一个练习。关键方法是 Image
对象的 corp
方法。函数原型:
crop(self, box=None)
box 是四个参数的元组,分别是设置截图的左、上、右、下的坐标位置。 返回值则是以这个位置裁剪出的图像区域。
核心代码参考:
from PIL import Image
img = Image.open('src.jpg')
w, h = img.size
rowheight = h // 3
colwidth = w // 3
for r in range(3):
for c in range(3):
box = (c * colwidth, r * rowheight, (c + 1) * colwidth, (r + 1) * rowheight)
i = img.crop(box)
i.save('pic_%d.jpg' % (r*3+c))
@GS、@凌烟、@sociopath 三位同学提交了代码。其中 @凌烟 处理了长方形图片的裁剪,@GS 更进一步,用填白的方式保证了长方形图像裁剪后的完整性。
感谢各位同学的参与。
期待在下一期中看到你的代码!