每个月都有各种各样的开销,不当家不知道柴米贵呀!柴米油盐酱醋茶样样都要开销,吃的穿的,各种开销,每个月都没有啥结余,小编月初是富人,月底就光了。
都说理财从记账开始,小编我用过很多记账软件,但是都不是很好用,对我来说太复杂了。个人喜欢极其简单的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:]foreinbodyif'-'not ine]
这样的优化能轻松搞定用户的输入容错。是不是很爽,自己动手用Python写一遍,看看你每个月的收支明细,是不是很有成就感!啊呀,小编忘记计算自己的花呗的账单了。。。。下个月又要吃泡面了。