python 模擬銀行轉(zhuǎn)賬功能過程詳解
首先畫出流程圖,流程圖與現(xiàn)實代碼有出入,因為剛開始畫流程圖的時候,有些東西沒考慮進去,后來寫著寫著就慢慢能想起來并實現(xiàn)了。
另有一點經(jīng)驗推薦給新手朋友,如果說碰到一個項目無從下手的話,就先慢慢去寫,寫著寫著你就會往下寫了,真的,親身實踐。望大神勿噴~
#!/usr/bin/env python #encoding:utf-8 import re import pickle import time def getUser(): '''從數(shù)據(jù)文件里獲取銀行卡用戶信息''' with open('cardinfo.db','r') as f: return pickle.load(f) def panDing(): '''判定用戶銀行卡信息跟密碼信息的準確性''' while True: user_dict=getUser() print user_dict card_num=raw_input('請輸入您的19位銀行卡號(只包含數(shù)字):')#獲取用戶卡號 if re.match('\d{19}',card_num) and card_num in user_dict:#判斷卡號是否匹配 card_passwd=(raw_input('請輸入您的銀行卡密碼:')) # print '輸入的密碼是:%s,類型為:%s' % (int(card_passwd),type(int(card_passwd))) # print '存的密碼是:%s,類型為:%s' % (user_dict[card_num]['password'],type(user_dict[card_num]['password'])) if int(card_passwd) == user_dict[card_num]['password']:#判定密碼對錯 break else: print '密碼錯誤!' continue else: print '您輸入的銀行卡信息有誤!' return card_num def zhuanZhang(srcaccount): '''用戶轉(zhuǎn)賬操作''' user_dict = getUser() while True: target_account = raw_input('請輸入目標賬戶:') if re.match('\d{19}', target_account) : if target_account in user_dict: # 判斷卡號是否匹配 while True: tr_balance = int(raw_input('請輸入轉(zhuǎn)賬金額:')) if tr_balance <= user_dict[srcaccount]['balance']:#對比轉(zhuǎn)賬金額跟賬戶余額 break else: print '轉(zhuǎn)賬金額大于余額,請重新輸入余額!' break else: print '卡號錯誤,請重新輸入!' else: print '卡號不對' print '轉(zhuǎn)入的賬戶為:%s ,金額為:%s' % (target_account,tr_balance) print '原賬戶為:%s ,余額為:%s' % (srcaccount,user_dict[srcaccount]['balance']) print user_dict user_dict[srcaccount]['balance']=user_dict[srcaccount]['balance']-tr_balance user_dict[target_account]['balance'] = user_dict[target_account]['balance'] + tr_balance print '轉(zhuǎn)入的賬戶為:%s ,轉(zhuǎn)入的金額為:%s' % (target_account, tr_balance) # print '轉(zhuǎn)入賬戶為:%s ,余額為:%s' % (target_account, user_dict[target_account]['balance']) print '原賬戶為:%s ,余額為:%s' % (srcaccount, user_dict[srcaccount]['balance']) print user_dict with open('cardinfo.db','w') as f: pickle.dump(user_dict,f) with open('op.log','a+') as f: f.writelines('%s 賬戶%s轉(zhuǎn)入到賬戶%s中%s人民幣' % (time.strftime('%Y-%m-%d %H:%M:%S'),srcaccount,target_account,tr_balance),f) print '%s 賬戶%s轉(zhuǎn)入到賬戶%s中%s人民幣' % (time.strftime('%Y-%m-%d %H:%M:%S'),srcaccount,target_account,tr_balance) def quXian(user_card): '''用戶取現(xiàn)操作''' user_dict = getUser() while True: qx_balance=raw_input('請輸入取現(xiàn)金額:') if re.match('\d+',qx_balance): print user_dict[user_card]['balance'] if int(qx_balance) <= user_dict[user_card]['balance']: user_dict[user_card]['balance'] = user_dict[user_card]['balance'] - int(qx_balance) print user_dict with open('cardinfo.db', 'w') as f: pickle.dump(user_dict, f) with open('op.log', 'a') as f: f.write('%s 賬戶 %s 取現(xiàn)人民幣 %s' % (time.strftime('%Y-%m-%d %H:%M:%S'), user_card,qx_balance)) print '%s 賬戶[%s]取現(xiàn)人民幣%s圓' % (time.strftime('%Y-%m-%d %H:%M:%S'), user_card,qx_balance) break else: print '余額不夠!' else: print '輸入的格式有誤' # with open('cardinfo.db','r') as f: # print pickle.load(f) # with open('op.log','r') as f: # print pickle.load(f) def chaBalance(user_dict,user_card): print '賬戶余額為:%s ' % user_dict[user_card]['balance'] def run(): user_card = panDing() print user_card while True: user_dict=getUser() # print '賬戶余額為:%s ' % user_dict[user_card]['balance'] choose_num=raw_input('請確認操作:(轉(zhuǎn)賬請按1,取現(xiàn)請按 2,余額查詢請按3,退出請按4):') if re.match('[1234]',choose_num):#根據(jù)用戶選擇類型判斷執(zhí)行方法 if re.match('[1234]',choose_num).group() == '1':#轉(zhuǎn)帳 zhuanZhang(user_card) elif re.match('[1234]',choose_num).group() == '2':#取現(xiàn) quXian(user_card) elif re.match('[1234]',choose_num).group() == '3':#余額查詢 chaBalance(user_dict, user_card) else:#退出 break if __name__ == '__main__': run()
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Django博客系統(tǒng)注冊之創(chuàng)建用戶模塊應(yīng)用
本文主要介紹了Django博客系統(tǒng)注冊之創(chuàng)建用戶模塊應(yīng)用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09Python調(diào)整數(shù)組形狀如何實現(xiàn)
這篇文章主要介紹了Python調(diào)整數(shù)組形狀如何實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-12-12python實現(xiàn)json轉(zhuǎn)yolo格式
在目標檢測數(shù)據(jù)集處理中,我們經(jīng)常會遇到標簽之間不同格式的轉(zhuǎn)化,本文主要介紹了python實現(xiàn)json轉(zhuǎn)yolo格式,具有一定的參考價值,感興趣的可以了解一下2023-12-12Python 通過爬蟲實現(xiàn)GitHub網(wǎng)頁的模擬登錄的示例代碼
這篇文章主要介紹了Python 通過爬蟲實現(xiàn)GitHub網(wǎng)頁的模擬登錄的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Python RuntimeWarning:invalid value encounter
這篇文章主要介紹了Python RuntimeWarning:invalid value encountered in double_scalars處理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06Python調(diào)用百度AI實現(xiàn)身份證識別
這篇文章主要介紹了Python通過調(diào)用百度AI的文字識別功能實現(xiàn)對身份證進行識別,代碼具有一定的學(xué)習(xí)價值,感興趣的朋友一起來看看效果吧2021-12-12