最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 模擬銀行轉(zhuǎn)賬功能過程詳解

 更新時(shí)間:2019年08月06日 11:04:54   作者:851096287  
這篇文章主要介紹了python 模擬銀行轉(zhuǎn)賬功能過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

首先畫出流程圖,流程圖與現(xiàn)實(shí)代碼有出入,因?yàn)閯傞_始畫流程圖的時(shí)候,有些東西沒考慮進(jìn)去,后來寫著寫著就慢慢能想起來并實(shí)現(xiàn)了。

另有一點(diǎn)經(jīng)驗(yàn)推薦給新手朋友,如果說碰到一個(gè)項(xiàng)目無從下手的話,就先慢慢去寫,寫著寫著你就會往下寫了,真的,親身實(shí)踐。望大神勿噴~

#!/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():
  '''判定用戶銀行卡信息跟密碼信息的準(zhǔn)確性'''
  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']:#判定密碼對錯(cuò)
        break
      else:
        print '密碼錯(cuò)誤!'
        continue
    else:
      print '您輸入的銀行卡信息有誤!'
  return card_num

def zhuanZhang(srcaccount):
  '''用戶轉(zhuǎn)賬操作'''

  user_dict = getUser()
  while True:
    target_account = raw_input('請輸入目標(biāo)賬戶:')
    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 '卡號錯(cuò)誤,請重新輸入!'
    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('請確認(rèn)操作:(轉(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)文章

  • Python使用openpyxl復(fù)制整張sheet

    Python使用openpyxl復(fù)制整張sheet

    這篇文章主要介紹了Python使用openpyxl復(fù)制整張sheet,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python Web框架Flask中使用百度云存儲BCS實(shí)例

    Python Web框架Flask中使用百度云存儲BCS實(shí)例

    這篇文章主要介紹了Python Web框架Flask中使用百度云存儲BCS實(shí)例,本文調(diào)用了百度云存儲Python SDK中的相關(guān)類,需要的朋友可以參考下
    2015-02-02
  • Python 添加命令行參數(shù)步驟

    Python 添加命令行參數(shù)步驟

    這篇文章主要介紹了Python 添加命令行參數(shù)步驟,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • 在Pycharm中將pyinstaller加入External Tools的方法

    在Pycharm中將pyinstaller加入External Tools的方法

    今天小編就為大家分享一篇在Pycharm中將pyinstaller加入External Tools的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • numpy中以文本的方式存儲以及讀取數(shù)據(jù)方法

    numpy中以文本的方式存儲以及讀取數(shù)據(jù)方法

    今天小編就為大家分享一篇numpy中以文本的方式存儲以及讀取數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 利用Python和C++解析gltf文件的示例詳解

    利用Python和C++解析gltf文件的示例詳解

    gltf,全稱是GL Transmission Format,是一種開放的3D文件格式,Python和C++是兩個(gè)非常強(qiáng)大的工具,下面我們就來看看如何結(jié)合這兩種語言來實(shí)現(xiàn)gltf文件的解析吧
    2025-03-03
  • Python中的for循環(huán)示例詳解

    Python中的for循環(huán)示例詳解

    Python中的for循環(huán)是一種迭代循環(huán),可以迭代容器中的每一個(gè)元素,本文通過實(shí)例代碼給大家介紹Python中的for循環(huán),感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • 用python構(gòu)建IP代理池詳解

    用python構(gòu)建IP代理池詳解

    大家好,本篇文章主要講的是用python構(gòu)建IP代理池詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Python-Flask:動態(tài)創(chuàng)建表的示例詳解

    Python-Flask:動態(tài)創(chuàng)建表的示例詳解

    今天小編就為大家分享一篇Python-Flask:動態(tài)創(chuàng)建表的示例詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python使用Rich?type和TinyDB構(gòu)建聯(lián)系人通訊錄

    Python使用Rich?type和TinyDB構(gòu)建聯(lián)系人通訊錄

    這篇文章主要為大家介紹了Python使用Rich?type和TinyDB構(gòu)建聯(lián)系人通訊錄應(yīng)用程序,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08

最新評論

阿拉尔市| 凯里市| 运城市| 公安县| 开平市| 台山市| 兖州市| 墨玉县| 乐业县| 桓台县| 山东省| 诸城市| 庆云县| 望奎县| 温宿县| 社旗县| 鄂托克前旗| 偃师市| 阳高县| 万盛区| 固原市| 峨眉山市| 工布江达县| 章丘市| 涿州市| 兴文县| 江阴市| 永靖县| 宁津县| 班玛县| 招远市| 亚东县| 青浦区| 个旧市| 太和县| 乃东县| 沈阳市| 利川市| 文山县| 乌什县| 额敏县|