python打造记账本_Python实现简单的记账本功能
#!/usr/bin/env python#coding:utf8
importos,sysimporttime‘‘‘1.運(yùn)行該腳本會(huì)生成一個(gè)balance.txt文件,并設(shè)置初始賬戶(hù)余額:¥10000
2.運(yùn)行該腳本會(huì)生成一個(gè)account.txt文件,并記錄賬戶(hù)消費(fèi)信息詳情。‘‘‘
defsave():
date= time.strftime("%Y-%m-%d")
cost=0while 1:try:
save= int(raw_input("請(qǐng)輸入存款金額:").strip())exceptValueError:print "\033[31m請(qǐng)輸入數(shù)值類(lèi)型,重新輸入!\033[0m"
continue
except(KeyboardInterrupt,EOFError):
sys.exit("\n\033[31m程序退出\033[0m")if save <=0:print "\033[31m請(qǐng)輸入一個(gè)大于0的存款金額:\033[0m"
continue
while 1:try:
comment= str(raw_input("請(qǐng)輸入存款信息:"))except(KeyboardInterrupt,EOFError):
sys.exit("\n\033[31m程序退出\033[0m")if notcomment:continue
break
breakbalance=rekcon_balance(save,cost)
a.write(‘%-12s%-12s%-12s%-12s%-12s\n‘ %(date, cost, save, balance, comment))
a.flush()
with open(‘balance.txt‘, ‘w‘) as b:
balance=str(balance)
b.write(balance)defcost():
save=0
date= time.strftime("%Y-%m-%d")while 1:try:
cost= int(raw_input("請(qǐng)輸入消費(fèi)金額:").strip())exceptValueError:print "\033[31m請(qǐng)輸入數(shù)值類(lèi)型,重新輸入!!!\033[0m"
continue
except(KeyboardInterrupt,EOFError):
sys.exit("\n\033[31m程序退出\033[0m")if cost <=0:print "\033[31m請(qǐng)輸入一個(gè)大于0的消費(fèi)金額:\033[0m"
continue
breakbalance=rekcon_balance(save,cost)while balance == -1:print "\033[31m余額不足,請(qǐng)充值或進(jìn)行其他操作!!!\033[0m"
break
else:while 1:try:
comment= str(raw_input("請(qǐng)輸入消費(fèi)信息:"))except(KeyboardInterrupt,EOFError):
sys.exit("\n\033[31m程序退出\033[0m")if notcomment:continue
breaka.write(‘%-12s%-12s%-12s%-12s%-12s\n‘ %(date, cost, save, balance, comment))
with open(‘balance.txt‘, ‘w‘) as b:
balance=str(balance)
b.write(balance)
a.flush()defrekcon_balance(save,cost):try:
with open(‘balance.txt‘, ‘r‘) as b:
balance=b.readline()
balance=int(balance)exceptIOError:
balance= 10000balance+=saveif cost >balance:
balance= -1
returnbalance
balance-=cost#with open(‘balance.txt‘, ‘w‘) as f:
#balance = str(balance)
#f.write(balance)
returnbalancedefbalance():try:
with open(‘balance.txt‘, ‘r‘) as b:
balance=b.readline()exceptIOError,e:
balance= 10000
print "\033[31m初始賬戶(hù)余額:\033[0m¥%s" %balanceelse:print "\033[31m當(dāng)前賬戶(hù)余額:\033[0m¥%s" %balancedefview():print ‘賬戶(hù)金額詳細(xì)信息‘.center(78,‘*‘)print "%-12s%-12s%-12s%-12s%-12s\n" %(‘Date‘, ‘Cost‘, ‘Save‘, ‘Balance‘, ‘Comment‘),
with open(‘a(chǎn)ccount.txt‘,‘r‘) as b:for line inb.readlines():printline,print ‘*‘.center(70,‘*‘)defshow_menu():
cmds={‘0‘: save, ‘1‘: cost, ‘2‘: balance, ‘3‘: view, ‘4‘: quit
}
prompt= """\033[32m-----------------------------
(0): save money
(1): cost money
(2): balance
(3): view detail
(4): quit
-----------------------------\033[0m
Please Input Your Choice:"""
while 1:try:
choice=raw_input(prompt).strip()[0]except(KeyboardInterrupt,EOFError):
sys.exit("\n\033[31m程序退出\033[0m")exceptIndexError:print "\033[31m無(wú)效輸入,請(qǐng)重新輸入!!!\033[0m"
continue
if choice not in ‘01234‘:print "\033[31m無(wú)效輸入,請(qǐng)重新輸入!!!\033[0m"
continue
if choice == 4:breakcmds[choice]()if __name__ == ‘__main__‘:
a= open(‘a(chǎn)ccount.txt‘,‘a(chǎn)‘)printshow_menu()
a.close()
總結(jié)
以上是生活随笔為你收集整理的python打造记账本_Python实现简单的记账本功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 移植wpa_supplicant软件与D
- 下一篇: python输入日期时间转换格式_pyt