亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Python怎么實現一個ATM功能

發布時間:2021-04-16 16:58:24 來源:億速云 閱讀:303 作者:Leah 欄目:開發技術

這篇文章給大家介紹使用Python怎么實現一個ATM功能,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

import os

user_staus = {'username': None}


def ad_credit(username, amount):
  """
  充值功能
  :param username:
  :param amount:
  :return:
  """
  if user_staus['username'] is None:
    login()
  with open('db.txt', 'rt', encoding='utf-8')as f1, \
      open('db.txt.swap', 'wt', encoding='utf-8')as f2:
    while True:
      cont = f1.readline()
      if len(cont) == 0:
        break
      name, remain = cont.strip().split(':')
      if username in name:
        remain = int(remain) + int(amount)
        f2.write('{}:{}\n'.format(name, remain))
        print('充值成功,{}的余額為{}'.format(username, remain))
      else:
        f2.write(cont)
  os.remove('db.txt')
  os.rename('db.txt.swap', 'db.txt')


def transfer(user_out, user_in, amount):
  '''3
  轉賬功能
  :param user_out:
  :param user_in:
  :param amount:
  :return:
  '''
  if user_staus['username'] is None:
    login()
  with open('db.txt', 'rt', encoding='utf-8')as f1, \
      open('db.txt.swap', 'wt', encoding='utf-8')as f2:

    userinfo = {}
    for line in f1:
      name, remind = line.strip().split(':')
      userinfo[name] = int(remind)
    if user_out not in userinfo:
      print('用戶不存在')
      return
    if user_in not in userinfo:
      print('收款方不存在')
      return
    if user_out in userinfo and user_in in userinfo:
      if userinfo[user_out] >= int(amount):
        userinfo[user_out] -= int(amount)
        userinfo[user_in] += int(amount)
        print('轉賬成功,已成功從{}向{}匯款{}'.format(user_out, user_in, amount))
      elif userinfo[user_out] < amount:
        print('余額不足')
        return
    for name, remind in userinfo.items():
      f2.write('{}:{}\n'.format(name, remind))

  os.remove('db.txt')
  os.rename('db.txt.swap', 'db.txt')


def cashon(username, amount):
  '''
  提現功能
  :param username:
  :param amount:
  :return:
  '''
  if user_staus['username'] is None:
    login()
  with open('db.txt', 'rt', encoding='utf-8')as f1, \
      open('db.txt.swap', 'wt', encoding='utf-8')as f2:
    userinfo = {}
    for line in f1:
      name, remind = line.strip().split(':')
      userinfo[name] = int(remind)
    if username not in userinfo:
      print('用戶不存在')
      return
    if username in userinfo and userinfo[username] >= int(amount):
      userinfo[username] -= int(amount)
      print('已從余額中取出{},現余額為{}'.format(amount, userinfo[username]))
    elif userinfo[username] < amount:
      print('余額不足,提現失敗')
      return
    for name, remind in userinfo.items():
      f2.write('{}:{}\n'.format(name, remind))
  os.remove('db.txt')
  os.rename('db.txt.swap', 'db.txt')


def check(username):
  '''
  余額查詢功能
  :param username:
  :return:
  '''
  if user_staus['username'] is None:
    login()
  with open('db.txt', 'rt', encoding='utf-8')as f:
    userinfo = {}
    for line in f:
      name, remind = line.strip().split(':')
      userinfo[name] = remind
    if username not in userinfo:
      print('用戶不存在')
      return
    if username in userinfo:
      print('當前余額為:{}'.format(userinfo[username]))


def login():
  username = input('輸入用戶名')
  userpassword = input('輸入密碼')
  with open('login.txt', 'rt', encoding='utf-8')as login_f:
    login = {}
    for line in login_f:
      name, psd = line.strip().split(':')
      login[name] = psd
      if username in login:
        if login[username] == userpassword:
          print('登陸成功')
          user_staus['username'] = username
          break
      elif username not in login:
        print('用戶名不存在')
        return


def logout():
  user_staus['username'] = None
  print('已成功登出')
  return


login()
tag = True
while tag:
  cmd = input('''
  請輸入你想使用的功能序號
  1:充值
  2:轉賬
  3:提現
  4:查詢余額
  0:登出
  ''')
  if cmd == '1':
    username = input('輸入用戶名:')
    amount = input('輸入充值金額:')
    ad_credit(username, amount)
  elif cmd == '2':
    user_out = input('請輸入轉賬方:')
    user_in = input('請輸入接收方:')
    amount = input('輸入轉賬金額:')
    transfer(user_out, user_in, amount)
  elif cmd == '3':
    username = input('輸入用戶名:')
    amount = input('輸入提現金額')
    cashon(username, amount)
  elif cmd == '4':
    username = input('輸入用戶名:')
    check(username)
  elif cmd == '0':
    logout()
    tag = False
  else:
    print('請正確輸入序號')

以下是模擬結果

'''
/Users/chenfeng/PycharmProjects/ATM/venv/bin/python /Users/chenfeng/PycharmProjects/ATM/main.py
輸入用戶名xilou
輸入密碼666
登陸成功

請輸入你想使用的功能序號
1:充值
2:轉賬
3:提現
4:查詢余額
0:登出
1
輸入用戶名:xilou
輸入充值金額:200
充值成功,xilou的余額為700

請輸入你想使用的功能序號
1:充值
2:轉賬
3:提現
4:查詢余額
0:登出
2
請輸入轉賬方:xilou
請輸入接收方:heiren
輸入轉賬金額:200
轉賬成功,已成功從xilou向heiren匯款200

請輸入你想使用的功能序號
1:充值
2:轉賬
3:提現
4:查詢余額
0:登出
3
輸入用戶名:xilou
輸入提現金額100
已從余額中取出100,現余額為400

請輸入你想使用的功能序號
1:充值
2:轉賬
3:提現
4:查詢余額
0:登出
4
輸入用戶名:xilou
當前余額為:400

請輸入你想使用的功能序號
1:充值
2:轉賬
3:提現
4:查詢余額
0:登出
0
已成功登出

Process finished with exit code 0

關于使用Python怎么實現一個ATM功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上高县| 许昌县| 崇州市| 忻城县| 长宁区| 丰都县| 阜新市| 德昌县| 广宗县| 微山县| 鲁甸县| 乡宁县| 仁寿县| 德钦县| 冕宁县| 兰坪| 徐水县| 平湖市| 郑州市| 彭山县| 绥中县| 潜山县| 将乐县| 东海县| 封开县| 灵宝市| 大埔区| 景谷| 简阳市| 炎陵县| 迁西县| 红河县| 永春县| 竹北市| 平度市| 紫阳县| 闸北区| 新兴县| 安塞县| 顺义区| 光泽县|