python自動化-作業5.ATM+購物商城————A
阿新 • • 發佈:2018-12-14
模擬實現一個ATM + 購物商城程式:
額度 15000或自定義
實現購物商城,買東西加入 購物車,呼叫信用卡介面結賬
可以提現,手續費5%
每月22號出賬單,每月10號為還款日,過期未還,按欠款總額 萬分之5 每日計息
支援多賬戶登入
支援賬戶間轉賬
記錄每月日常消費流水
提供還款介面
ATM記錄操作日誌
提供管理介面,包括新增賬戶、使用者額度,凍結賬戶等。。。
使用者認證用裝飾器
完成時間:2018、12、14
專案名稱:
ATM + 購物商城程式v1.0版
工程檔案目錄:
start.py檔案:
import sys import os start_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(start_path) from conf.config import * from core.src import * from core.atm import * if __name__ == '__main__': while True: user= json.load(open('../db/admin_info', 'r')) print('歡迎來到ATM+完美購物商城'.center(100,'-')) in_user = input('請輸入您的賬號:\n>>>') if in_user == 'q': # 退出 Flog['exit_flog'] = True exit('您已經退出'.center(100,'-')) in_password = input('請輸入您的密碼:\n>>>') if in_password == 'q': # 退出 Flog['exit_flog'] = True exit('您已經退出'.center(100,'-')) for i in user: if in_user == i.get('username') and in_password == i.get('password'): Flog['login_flog'] = True print('登入成功'.center(50,'-')) logging.debug('debug') logging.info('--------<{}>成功登入--------'.format(i['username'])) Flog['tamp_item'] = i # tamp_item存放登入賬戶的所有資訊字典 Flog['tamp_item']['wares'] = {} # 拿購物車 Flog['tamp_item']['total_price'] = 0 # 單次購買商品總價 Flog['tamp_item']['this_buy'] = {} # 清空本次購買(上次購買) break if Flog['login_flog']: Flog['login_flog'] = False while True: print('請輸入您的選擇:\n1.ATM賬戶\n2.購物商城\n3.ATM管理(管理員賬戶可用)') select = input('請輸入您的選擇序號(q.退出登入):>>>') if select == 'q': print('退出成功'.center(50,'-')) logging.debug('debug') logging.info('--------<{}>退出成功--------'.format(Flog['tamp_item']['username'])) break if int(select) in range(1,4): if select == '1': Atm_System(user,Flog['tamp_item']['username']) # 進入ATM賬戶 if select == '2': Shopping_Mall(user) # 進入網上商城 if Flog['exit_flog']: break if select == '3': # 進入ATM管理(新增賬戶、提高額度、凍結賬戶) if not Flog['tamp_item']['manager']: print('請使用管理員賬戶登入'.center(50,'-')) break ATM_manage(user) # 只限管理員賬戶使用 if Flog['restart_system']: Flog['restart_system'] = False break else: print('您的輸入有誤,請重新輸入'.center(50,'-')) else: print('您的賬戶或密碼輸入錯誤,請重新輸入'.center(50,'-'))
atm.py檔案:
#author: guogangzhi import json from conf.config import * start_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(start_path) def find_atminfo(): # 查詢信用卡資訊 print('登入的信用卡資訊'.center(100,'-')) print('賬戶名稱 信用卡可用額度 還款時間') print('{} {} {}'.format(Flog['atm_tamp_item']['atm_user'], Flog['atm_tamp_item']['remainder'], Flog['atm_tamp_item']['repayment_time'])) print('這個月的消費流水'.center(80,'-')) print('序號 購買時間 數量 價格 商品名稱') Flog['atm_tamp_item']['consume_water'] = Flog['tamp_item']['Records_of_consumption'] for buytime, item in Flog['atm_tamp_item']['consume_water'].items(): print('---------------------------{}---------------------------'.format(buytime)) for num, (x, i) in enumerate(item.items()): print('{: <3} {: <20} {: <3} {} {}'.format(num + 1, x, i[0], i[1], i[2])) def withdraw_deposit(): # 提現 while True: out_money = input('請輸入你要提現的金額(手續費:5%)(q.退出提現):>>>') if out_money == 'q': print('退出提現'.center(50,'-')) break if out_money.isdigit(): out_money = int(out_money) if Flog['atm_tamp_item']['remainder'] >= out_money*(1+0.05): Flog['atm_tamp_item']['remainder'] -= out_money*(1+0.05) print('提現成功'.center(50,'-')) logging.debug('debug') logging.info('{}賬戶提現成功'.format(Flog['atm_tamp_item']['atm_user'])) break else: print('您的額度不夠,請減少提現金額'.center(50,'-')) else: print('您的輸入有誤,請重新輸入'.center(50,'-')) def transfer_accounts(a): # 轉賬 while True: transfer_user = input('請輸入您要轉賬賬戶的使用者名稱(q.退出轉賬):>>>') if transfer_user == 'q': print('您已經退出轉賬'.center(50,'-')) break transfer_password = input('請輸入您要轉賬賬戶的密碼(q.退出轉賬):>>>') if transfer_password == 'q': print('您已經退出轉賬'.center(50,'-')) break for keys in a: for i in a[keys]: if transfer_user == i['atm_user'] and transfer_password == i['atm_password']: print('賬戶存在'.center(50,'-')) Flog['transfer_user_exist'] = True Flog['atm_transfer_item'] = i if Flog['transfer_user_exist']: # 賬戶存在可以轉賬 Flog['transfer_user_exist'] = False transfer_mormy = input('請輸入轉賬金額:>>>') if transfer_mormy.isdigit(): transfer_mormy = int(transfer_mormy) if Flog['atm_tamp_item']['remainder'] >= transfer_mormy: Flog['atm_transfer_item']['remainder'] += transfer_mormy # 轉入賬戶+ Flog['atm_tamp_item']['remainder'] -= transfer_mormy # 轉出賬戶- print('轉賬成功'.center(50,'-')) logging.debug('debug') logging.info('{}賬戶提現成功'.format(Flog['atm_tamp_item']['atm_user'])) Flog['atm_transfer_item'] = None break else: print('額度不夠'.center(50,'-')) else: print('輸入錯誤'.center(50,'-')) else: for keys in a: for i in a[keys]: if transfer_user == i['atm_user'] and '_' + transfer_password == i['atm_password']: Flog['freeze_flog'] = True # 判斷賬戶是否凍結 break if Flog['freeze_flog']: Flog['freeze_flog'] = False print('您的賬戶已經被凍結'.center(50,'-')) else: print('您輸入的賬戶不存在,請重新輸入'.center(50,'-')) def repayment(): # 還款 while True: in_repayment = input('請輸入還款金額(q.退出還款):>>>') if in_repayment == 'q': print('您現在已經退出還款'.center(50,'-')) break if in_repayment.isdigit(): in_repayment = int(in_repayment) if in_repayment>0: Flog['atm_tamp_item']['remainder'] += in_repayment print('還款成功'.center(50,'-')) logging.debug('debug') logging.info('{}賬戶還款成功'.format(Flog['atm_tamp_item']['atm_user'])) break else: print('您的輸入有誤,請重新輸入'.center(50,'-')) def change_loginuser(u,a,n): # 更改繫結ATM賬戶 ''' :param u: user :param n: 繫結商城的帳號名 :return: ''' while True: in_username = input('請輸入您新繫結賬戶的使用者名稱(q.退出繫結賬戶):>>>') if in_username == 'q': print('您已經退出繫結賬戶'.center(50,'-')) break in_userpassword = input('請輸入您新繫結賬戶的密碼(q.退出繫結賬戶):>>>') if in_username == 'q': print('您已經退出繫結賬戶'.center(50,'-')) break for i in a[n]: if in_username == i['atm_user'] and in_userpassword == i['atm_password']: print('賬戶存在'.center(50, '-')) Flog['transfer_user_exist'] = True Flog['atm_transfer_item'] = i if Flog['transfer_user_exist']: Flog['tamp_item']['username'] = Flog['atm_transfer_item']['atm_user'] a[Flog['tamp_item']['username']] = a[n] # 在atm中將繫結商城的帳號修改 del(a[n]) # 用的方法是刪除原來的新建一個鍵值對 json.dump(u,open('../db/admin_info','w')) json.dump(a,open('../db/atm_admin_info','w')) print('繫結賬戶成功'.center(50,'-')) logging.debug('debug') logging.info('{}繫結賬戶成功'.format(Flog['tamp_item']['username'])) Flog['transfer_user_exist'] = False Flog['atm_transfer_item'] = None Flog['restart_system'] = True # 重啟系統 print('請重新登入系統'.center(100,'-')) break else: for i in a[n]: if in_username == i['atm_user'] and '_' + in_userpassword == i['atm_password']: Flog['freeze_flog'] = True # 判斷賬戶是否凍結 break if Flog['freeze_flog']: Flog['freeze_flog'] = False print('您的賬戶已經被凍結'.center(50,'-')) else: print('您輸入的賬戶/密碼錯誤,請重新輸入'.center(50,'-')) def login_elseuser(a,n): # 登入其他賬戶(商城賬戶的使用者的其他atm賬戶) while True: in_atmusername = input('請輸入您其他賬戶的使用者名稱(q.退出繫結賬戶):>>>') if in_atmusername == 'q': # 退出 print('退出登入其他使用者'.center(50,'-')) break in_atmpassword = input('請輸入您其他賬戶的密碼(q.退出繫結賬戶):>>>') if in_atmpassword.startswith('_'): print('這個賬戶已被凍結,請使用其他賬戶'.center(50,'-')) break if in_atmpassword == 'q': # 退出 print('退出登入其他使用者'.center(50, '-')) break for i in a[n]: if in_atmusername == i.get('atm_user') and in_atmpassword == i.get('atm_password'): Flog['atm_login_flog'] = True # 置位登入成功標誌 Flog['atm_tamp_item'] = i # tamp_item登入賬戶的所有資訊字典 break if Flog['atm_login_flog']: Flog['atm_login_flog'] = False print('賬戶切換成功'.center(50, '-')) break else: for i in atm[login_goods_user]: if in_atmusername == i.get('atm_user') and '_' + in_atmpassword == i.get('atm_password'): Flog['freeze_flog'] = True # 判斷賬戶是否凍結 break if Flog['freeze_flog']: Flog['freeze_flog'] = False print('您的賬戶已經被凍結'.center(50,'-')) else: print('您輸入的帳號、密碼有誤,請重新輸入'.center(50,'-')) def Atm_System(u,login_goods_user): ''' :param u: admin_info中的所有資料 :param login_goods_user: 商城的登入帳號名 :return: ''' while True: atm = json.load(open('../db/atm_admin_info', 'r')) in_atmpassword = input('請輸入您繫結商城的賬戶密碼(q.退出登入ATM):>>>') if in_atmpassword == 'q': # 退出 Flog['quit_atm'] = True break for i in atm[login_goods_user]: if login_goods_user == i.get('atm_user') and in_atmpassword == i.get('atm_password'): Flog['atm_login_flog'] = True # 置位登入成功標誌 print('登入ATM成功'.center(50, '-')) logging.debug('debug') logging.info('{}登入ATM成功'.format(i['atm_user'])) Flog['atm_tamp_item'] = i # tamp_item登入賬戶的信用卡密碼對應的資訊字典 break if Flog['atm_login_flog']: Flog['atm_login_flog'] = False # 復位登入成功標誌 while True: print('【{}】請選擇您需要的服務專案:\n1.查詢信用卡資訊\n2.提現\n3.轉賬\n4.還款\n5.更改繫結ATM賬戶\n6.登入其他賬戶\n'.format(Flog['atm_tamp_item']['atm_user'])) in_select = input('請輸入您的選擇(q.退出ATM、z.重啟系統):>>>') if in_select == 'q': # 退出ATM Flog['quit_atm'] = True break if in_select == 'z': # 退出整個系統 Flog['restart_system'] = True break if int(in_select) in range(1,7): if in_select == '1': # 1.查詢信用卡資訊 find_atminfo() if in_select == '2': # 2.提現 withdraw_deposit() if in_select == '3': # 3.轉賬 transfer_accounts(atm) if in_select == '4': # 4.還款 repayment() if in_select == '5': # 5.更改繫結ATM賬戶 change_loginuser(u,atm,login_goods_user) if in_select == '6': # 6.登入其他賬戶(商城賬戶的使用者的其他atm賬戶) login_elseuser(atm,login_goods_user) else: print('輸入錯誤,請重新輸入'.center(50,'-')) if Flog['restart_system']: # 重新啟動系統 break else: for i in atm[login_goods_user]: if login_goods_user == i.get('atm_user') and '_' + in_atmpassword == i.get('atm_password'): Flog['freeze_flog'] = True # 判斷賬戶是否凍結 break if Flog['freeze_flog']: Flog['freeze_flog'] = False print('您的賬戶已經被凍結'.center(50,'-')) else: print('密碼輸入有誤,請重新輸入'.center(50,'-')) if Flog['restart_system']: # 重新啟動系統 break if Flog['quit_atm']: # 退出ATM break if Flog['restart_system'] or Flog['quit_atm']: # 判斷是否已經退出ATM json.dump(atm,open('../db/atm_admin_info','w')) # 將資料儲存到檔案 Flog['quit_atm'] = False print('您已經退出ATM'.center(100, '-')) logging.debug('debug') logging.info('{}登入ATM成功'.format(Flog['atm_tamp_item']['atm_user'])) def new_atm_user(u,a): # 新增賬戶 while True: goods_user = input('請輸入您已經繫結的購物商城帳號:>>>') goods_password = input('請輸入您已經繫結的購物商城密碼:>>>') for i in u: if goods_user == i['username'] and goods_password == i['password']: Flog['goods_user_yes'] = True break if Flog['goods_user_yes']: # 購物商城賬戶確認(表示在這個商城賬戶下建立ATM賬戶) in_user = input('請輸入您要在【{}】帳號下建立賬戶的使用者名稱>>>'.format(goods_user)) in_password = input('請輸入您要在【{}】帳號下建立賬戶的密碼:>>>'.format(goods_user)) new_user = { 'atm_user': in_user, # atm賬戶 'atm_password': in_password, # atm密碼 'remainder': 15000, # 信用卡額度 'consume_water': {}, # 每月消費流水 'repayment_time': '每個月10號', # 還款時間str } a[goods_user].append(new_user) # 建立ATM賬戶完成 # print(a[goods_user]) json.dump(a, open('../db/atm_admin_info', 'w')) # 將資料儲存到檔案 print('ATM使用者建立完成'.center(50,'-')) logging.debug('debug') logging.info('{}ATM賬戶建立完成'.format(goods_user)) break else: print('沒有這個繫結商城的帳號'.center(50,'-')) def up_atm_remainder(a): # 提高ATM賬戶額度 while True: in_user = input('請輸入要提高額度ATM賬戶的使用者名稱:>>>') in_password = input('請輸入要提高額度ATM賬戶的密碼:>>>') for value in a.values(): for i in value: if in_user == i['atm_user'] and in_password == i['atm_password']: Flog['tamp_flog_yes'] = True Flog['atm_manage_item'] = i print('已經確認賬戶'.center(50,'-')) break if Flog['tamp_flog_yes']: break if Flog['tamp_flog_yes']: Flog['tamp_flog_yes'] = False in_mormy = input('額度提升到多少:>>>') if in_mormy.isdigit() and int(in_mormy)>15000: in_mormy = int(in_mormy)-15000 Flog['atm_manage_item']['remainder'] += in_mormy json.dump(a, open('../db/atm_admin_info', 'w')) # 將資料儲存到檔案 print('ATM賬戶額度以提高'.center(50,'-')) logging.debug('debug') logging.info('{}賬戶額度以提高'.format(Flog['atm_manage_item']['atm_user'])) break else: print('您的輸入有錯誤,請重新輸入'.center(50,'-')) else: print('沒有找到對應賬戶'.center(50,'-')) def freeze_atm(a): # 凍結賬戶 在賬戶的密碼前面加‘_’,在登入時做判斷是否凍結。 while True: in_user = input('請輸入要凍結的ATM賬戶的使用者名稱:>>>') in_password = input('請輸入要凍結的ATM賬戶的密碼:>>>') for value in a.values(): for i in value: if in_user == i['atm_user'] and in_password == i['atm_password']: Flog['tamp_flog_yes'] = True Flog['atm_manage_item'] = i print('已經確認賬戶'.center(50,'-')) break if Flog['tamp_flog_yes']: break if Flog['tamp_flog_yes']: Flog['tamp_flog_yes'] = False Flog['atm_manage_item']['atm_password'] = '_'+Flog['atm_manage_item']['atm_password'] json.dump(a, open('../db/atm_admin_info', 'w')) # 將資料儲存到檔案 print('ATM賬戶以凍結'.center(50,'-')) logging.debug('debug') logging.info('{}賬戶已被凍結'.format(Flog['atm_manage_item']['atm_user'])) break else: print('沒有找到對應賬戶'.center(50,'-')) def ATM_manage(u): # 進入ATM管理(新增賬戶、提高額度、凍結賬戶) while True: atm = json.load(open('../db/atm_admin_info', 'r')) print('ATM管理'.center(100,'-')) logging.debug('debug') logging.info('登入ATM管理') print('請選擇您的操作:\n1.新增ATM賬戶\n2.提高賬戶額度\n3.凍結賬戶\n') in_select= input('請輸入您的選擇(q.退出ATM管理、z.重啟系統):>>>') if in_select == 'q': Flog['quit_atm_manage'] = True # 退出ATM管理標誌置位 break if in_select == 'z': Flog['restart_system'] = True # 重啟系統 break if int(in_select) in range(1,4): if in_select == '1': # 1.新增ATM賬戶 new_atm_user(u,atm) if in_select == '2': # 2.提高賬戶額度 up_atm_remainder(atm) if in_select == '3': # 3.凍結賬戶 freeze_atm(atm) else: print('您的輸入有誤請重新輸入'.center(50,'-')) if Flog['restart_system'] or Flog['quit_atm_manage']: Flog['quit_atm_manage'] = False json.dump(atm, open('../db/atm_admin_info', 'w')) # 將資料儲存到檔案 print('您已經退出ATM管理'.center(100,'-')) logging.debug('debug') logging.info('退出ATM管理')
src.py檔案:
import json import time from conf.config import * from bin.start import * start_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(start_path) def add_gocar(goods_key,unit_price,num): # 將商品加入購物車(商品名稱、單價、數量) time_obj = time.localtime() # 加入購物車時間戳 time_str = '{}-{}-{} {}:{}:{}'.format( time_obj.tm_year, time_obj.tm_mon, time_obj.tm_mday, time_obj.tm_hour, time_obj.tm_min, time_obj.tm_sec) if goods_key in Flog['tamp_item']['wares'].keys(): select_value_num = Flog['tamp_item']['wares'][goods_key][0] + num # 如果有同樣的商品和之前的購買數量相加 else: select_value_num = num Flog['tamp_item']['wares'][goods_key] = [select_value_num,select_value_num*unit_price,time_str] # 存入使用者商品名稱、數量、價格、時間戳到使用者賬戶 def display_gocar(): print('您現在購物車中的商品有'.center(80,'-')) print('序號 名稱 數量 價格') Flog['tamp_tamp'] = Flog['tamp_item'].get('wares') Flog['tamp_item']['total_price'] = 0 for num, i in enumerate(Flog['tamp_tamp'].items()): Flog['tamp_item']['total_price'] += i[1][1] print('{: <3} {: <15}{: <3} {}'.format(num + 1, i[0], i[1][0], i[1][1])) print('-'*60) print('總價:{: >50}'.format(Flog['tamp_item']['total_price'])) print('-' * 90) def credit_card_interface(): # 結賬 if Flog['tamp_item']['total_price']: # 購物車不為空 if Flog['tamp_item']['remainder'] >= Flog['tamp_item']['total_price']: # 判斷是否買得起 Flog['tamp_item']['remainder'] -= Flog['tamp_item']['total_price'] # 從信用卡額度扣除 print('購買成功'.center(50, '-')) time_obj = time.localtime() # 下單時間戳 time_str = '{}-{}-{} {}:{}:{}'.format( time_obj.tm_year, time_obj.tm_mon, time_obj.tm_mday, time_obj.tm_hour, time_obj.tm_min, time_obj.tm_sec) Flog['tamp_item']['Records_of_consumption'][time_str] = {} for w_name, w_value in Flog['tamp_item']['wares'].items(): # 購買時間/購買商品名稱 在字典中的位置互換 Flog['tamp_item']['Records_of_consumption'][time_str].update( {w_value[2]: [w_value[0], w_value[1], w_name]}) # 儲存到《購買記錄》 Flog['tamp_item']['this_buy'].update(Flog['tamp_item']['wares']) # 儲存到《本次購買記錄》 Flog['tamp_item']['wares'] = {} # 清空購物車 else: print('您的信用卡額度不足,請及時還款'.center(50, '-')) else: print('您的購物車為空'.center(50,'-')) def Shopping_Mall(u): print('購物車網上商城'.center(100, '-')) while True: goods_list = [goods] while True: print('請選擇您需要的商品序號:') type_value = [*goods_list[-1].values()][0] if type(type_value) == int: # 判斷是商品列表中是最後一層 加¥價格 for index,i in enumerate(goods_list[-1]): print('{}.{: <10} ¥{}'.format(str(index+1),i,[*goods_list[-1].values()][index])) else: # 不是最後一層 for index,key in enumerate(goods_list[-1]): print('{}.{}'.format(str(index+1),key)) in_goods_class = input('你選擇的商品序號是(b.使用者資訊查詢、c.充值、j.進入購物車、q.退出商城、z.返回上一級):>>>') if in_goods_class =='q': # 退出 Flog['exit_flog'] = True break if in_goods_class == 'b': # 停止購買 Flog['stop_flog'] = True break if in_goods_class == 'c': # 充值 money = input('請輸入您要充值的金額:>>>') if money.isdigit(): Flog['tamp_item']['remainder'] += int(money) print('錢已到賬,您現在的信用卡賬戶餘額是:【{}】'.format(Flog['tamp_item']['remainder'])) break else: print('輸入錯誤,請重新選擇購買商品或充值!'.center(40,'-')) break if in_goods_class == 'j': # 進入購物車 display_gocar() isnot_account = input('是否結賬(y.是、n.清空購物車、任意鍵.還要買東西):>>>') if isnot_account == 'y': credit_card_interface() # 結算 break if isnot_account == 'n': Flog['tamp_item']['wares'] = {} # 清空購物車 print('購物車已經清空'.center(50,'-')) break else: break if in_goods_class == 'z': goods_list.pop() continue if in_goods_class.isdigit(): in_goods_class=int(in_goods_class) else: print('輸入錯誤,請重新輸入您要的商品序號!'.center(20,'-')) if in_goods_class in range(1,len(goods_list[-1])+1): # 是否有這個商品類 select_goods_class = [*goods_list[-1].values()][in_goods_class-1] # select_goods_class是所選擇的字典的值 select_goods_keys = [*goods_list[-1].keys()][in_goods_class-1] # select_goods_key是所選擇的字典的鍵 goods_list.append(select_goods_class) # 壓棧 if (type(select_goods_class) == int): # 值是數字,說明是(最後層) in_num = input('請輸入購買數量(b.使用者資訊查詢、j.購物車、q.退出商城、z.返回上一級):>>>') if in_num == 'q': # 退出 Flog['exit_flog'] = True break if in_num == 'b': # 停止購買 Flog['stop_flog'] = True break if in_num == 'c': # 充值 money = input('請輸入您要充值的金額:>>>') if money.isdigit(): Flog['tamp_item']['remainder'] += int(money) print('錢已到賬,您現在的賬戶餘額是:【{}】'.format(Flog['tamp_item']['remainder'])) break else: print('輸入錯誤,請重新選擇購買商品或充值!'.center(40,'-')) break if in_num == 'j': # 進入購物車 display_gocar() isnot_account = input('是否結賬(y.是、任意鍵.還要買東西):>>>') if isnot_account == 'y': credit_card_interface() # 結算 break else: break if in_num == 'z': # 返回上一級 goods_list.pop() continue in_num = int(in_num) add_gocar(select_goods_keys,select_goods_class,in_num) # 加入購物車 break if Flog['exit_flog']: break while Flog['stop_flog']: # 查詢模式 print('請選擇你要查詢的內容:\n1.您當前的餘額\n2.您的購物車(已付款)\n3.您的購買記錄') in_find_num = input('請輸入你要查詢的內容(b.採購商品、c.充值、q.退出):>>>') if in_find_num == '1': # 檢視當前使用者餘額 while True: is_not_money = input('您當前的餘額為:【{}】,是否充值(c.充值、任意鍵.退出):>>>'.format(Flog['tamp_item']['remainder'])) if is_not_money == 'c': money = input('請輸入您要充值的金額:>>>') if money.isdigit(): Flog['tamp_item']['remainder'] += int(money) print('錢已到賬,您現在的賬戶餘額是:【{}】'.format(Flog['tamp_item']['remainder'])) break