查看原文
其他

菜鸟也疯狂!8分钟用Python做一个酷炫的家庭随手记

菜鸟哥 菜鸟学Python 2022-09-22

每个月都有各种各样的开销,不当家不知道柴米贵呀!柴米油盐酱醋茶样样都要开销,吃的穿的,各种开销,每个月都没有啥结余,小编月初是富人,月底就光了。



都说理财从记账开始,小编我用过很多记账软件,但是都不是很好用,对我来说太复杂了。个人喜欢极其简单的Todolist那种风格,于是我喜欢开始用文本来记录每个月的开销,小编的开销如下:


账单:6月

1.伙食费,-3000

2.零花钱,-1000

3.房租,-3000

4.车贷,-3000

5.工资,+10000

6.理财,+800

7.朋友聚餐,-500

8.买衣服,-500

9.水电费,-100

10.油费,-300

11.交通补贴,+800

12.货币基金,+600

13.手机费,-100


如果用短短的20行Python代码,分分钟把它变成一个炫酷的随手记的账单呢,其实很简单。我们学Python的目的就是学以致用,能解决日常问题的Python才是真正有趣的!



01.第一步


把上面的文本的内容复制到如下:

bill='''
'''


声明一下变量,然后把文本的每一个月记录黏贴到字符串里面

bill='''
账单:6月
1.伙食费,-2000
2.零花钱,-500
3.房租,-3000
4.衣服,-1000
5.工资,+10000
6.理财,+800
7.朋友聚餐,-500
8.买衣服,-500
9.水电费,-100
10.油费,-300
11.全勤奖,+1000
12.货币基金,+600
13.手机费,-100
14.水果,-300
15.地铁+公交,-400
'''




02.处理数据


虽然我们已经在内存里面声明一个变量bill来记录我们的月账单,但是我们需要进行加工,对数据进行切割和加工,还要进行清洗!好比你买会来一条鱼,我们要斩头去尾,去鱼鳞然后剔鱼肉。


家庭的开销,我们分收入和支出两部分,而原生的数据,里面有中文,序列数字,标点,还有开销的数字,所以我们需要清洗并提取数据。


先对账单进行头尾的处理,第一行是我们的账单的名字,剩下的都是具体的账单内容。



03.切割数据



我们把数据用推导列表进行展开,通过'-'认为是每月开销,'+'认为是每月收入。然后再对每一段数据进行清洗,取掉序列标号。


接着把开销的字符串变成整数

里面有大量的字符串,比如'-100','+1000',这些都是字符串,我们必须转为整型或者浮点型才能计算。



04.计算开销明细


经过上面的数据准备,我们可以动手进行计算,看看花了多少钱,还结余多少。

>>

收入: 12400.0

支出: 8700.0

结余: 3700

算下来,一个月虽然有1万多的收入,但是入不敷出啊,各种开销都很大。还是需要继续开源节流啊~



05.炫酷的账本来了


如果说上面这些加加减减好想也没有什么特别的,只是进行数据的统计,谈不上很炫酷呀。那么下面几行代码可以才是我们的重头戏,几行代码立马让你眼前一亮:


支出的:


收入:


收入/支持比:




06.更上一层楼,优化代码


如果让我们的代码功能更强大,增强容错功能!让用户输入的时候更方便,毕竟用户输入的数据不可能这么工整!

  • 比如如果我们的用户输入的时候,开支用'-',而收入用可以省略'+',这样用户可以少输一个字符,更简洁;

  • 比如输入‘15.地铁+公交,-400’ ,输入的时候会英文的逗号和中文的逗号不分,一不小心就写成‘15.地铁+公交,-400’


 


其实我们的代码只要改动几个字符,就能让我们的程序功能大增,让用户使用起来更爽。


我们在正则的地方,增加一行,

patt=re.compile(r'[\.\,\,]')


再清洗数据的,计算收入的时候改变一下判断

income=[re.split(patt, e)[1:] for e in body if '-' not in e]




这样的优化能轻松搞定用户的输入容错。是不是很爽,自己动手用Python写一遍,看看你每个月的收支明细,是不是很有成就感!啊呀,小编忘记计算自己的花呗的账单了。。。。下个月又要吃泡面了。


近期原创热门:


由菜鸟学Python原班人马打造的公众号【程序员GitHub】,专注于分享GitHub上有趣的资源包括,Python,Java,Go语言前端学习等优质的学习资源,爆料程序员圈的新鲜趣事,热门干货,职场感悟,感兴趣的小伙伴可以来捧场!


程序员GitHub


点的“在看”,否则就看不到我了555


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存