菜鳥也瘋狂!8分鐘用Python做一個酷炫的家庭隨手記

每個月都有各種各樣的開銷,不當家不知道柴米貴呀!柴米油鹽醬醋茶樣樣都要開銷,喫的穿的,各種開銷,每個月都沒有啥結餘,小編月初是富人,月底就光了。

都說理財從記賬開始,小編我用過很多記賬軟件,但是都不是很好用,對我來說太複雜了。個人喜歡極其簡單的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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章