微信号:crossincode

介绍:每天5分钟,学点简单的编程,用新的思维方式看世界.【声明:公众号搜出的另一个同名是山寨货】

【每周一坑】房贷计算器 |【解答】生成九宫格图片

2018-07-04 15:22 Crossin先生

大家好,每N周一坑栏目又来啦😏

今天的坑是一个很简单但很实用的小程序:

房贷计算器

因为是“刚需”,所以网上早有无数的版本。有人已经用过,有人以后可能会用。有没有想过,类似这种小工具,其实你自己也可以实现。

输入:

  1. 贷款金额

  2. 贷款期限

  3. 标准年利率

  4. 利率浮动倍数

输出:
两种贷款方式
等额本息

  1. 每月还款

  2. 总利息

等额本金

  1. 首月还款

  2. 每月递减额

  3. 总利息

效果:

我们只需要实现功能,并不需要推导数学公式,所以你用现成的公式即可。我这里就不把公式给出了,因为搜索是开发的重要技能,也其实是今天这个坑的重点。

完成之后,可以跟网上的已有工具对比下正确性。

附加题:

  1. 做成 GUI 版本

  2. 做成网页版(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 更进一步,用填白的方式保证了长方形图像裁剪后的完整性。

感谢各位同学的参与。

期待在下一期中看到你的代码!





如需了解视频课程及答疑群等更多服务,请号内回复 码上行动

代码相关问题可以在论坛上发帖提问 bbs.crossincode.com


推荐阅读:

开发工具 世界杯 | 高考 | 我用Python | 知乎 | 排序 | 朋友圈 | 电影票 | 技术宅 | 火车票 | 单词表 | 押韵工具 | 新手建议 | 就业 



欢迎加入

Crossin的编程教室

crossincode.com


  请把我们分享给身边爱学习的小伙伴 :)  

点击文末“阅读原文”,查看更多学习资源

 
Crossin的编程教室 更多文章 世界杯竞猜,怎么选会赚 世界杯竞猜,怎么选会赚 像对象一样对待数据 爬虫必备工具,掌握它就解决了一半的问题 大家的编程故事
猜您喜欢 云计算架构师峰会门票免费送,回馈粉丝大力支持 推出面向网站开发者的Mobile Sites认证 程序员除了找不到对象,还有什么在烦恼? NO. 3 | Apache Kylin 开发员认证培训北京、上海圆满结束 Using hardware layers to improve Android animation performance