每個月都有各種各樣的開銷,不當家不知道柴米貴呀!柴米油鹽醬醋茶樣樣都要開銷,喫的穿的,各種開銷,每個月都沒有啥結餘,小編月初是富人,月底就光了。
都說理財從記賬開始,小編我用過很多記賬軟件,但是都不是很好用,對我來說太複雜了。個人喜歡極其簡單的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