這篇文章給大家介紹使用Python怎么實現(xiàn)一個ATM功能,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
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 轉(zhuǎn)賬功能 :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('轉(zhuǎn)賬成功,已成功從{}向{}匯款{}'.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): ''' 提現(xiàn)功能 :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('已從余額中取出{},現(xiàn)余額為{}'.format(amount, userinfo[username])) elif userinfo[username] < amount: print('余額不足,提現(xiàn)失敗') 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('當(dāng)前余額為:{}'.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:轉(zhuǎn)賬 3:提現(xiàn) 4:查詢余額 0:登出 ''') if cmd == '1': username = input('輸入用戶名:') amount = input('輸入充值金額:') ad_credit(username, amount) elif cmd == '2': user_out = input('請輸入轉(zhuǎn)賬方:') user_in = input('請輸入接收方:') amount = input('輸入轉(zhuǎn)賬金額:') transfer(user_out, user_in, amount) elif cmd == '3': username = input('輸入用戶名:') amount = input('輸入提現(xiàn)金額') cashon(username, amount) elif cmd == '4': username = input('輸入用戶名:') check(username) elif cmd == '0': logout() tag = False else: print('請正確輸入序號')
以下是模擬結(jié)果
'''
/Users/chenfeng/PycharmProjects/ATM/venv/bin/python /Users/chenfeng/PycharmProjects/ATM/main.py
輸入用戶名xilou
輸入密碼666
登陸成功請輸入你想使用的功能序號
1:充值
2:轉(zhuǎn)賬
3:提現(xiàn)
4:查詢余額
0:登出
1
輸入用戶名:xilou
輸入充值金額:200
充值成功,xilou的余額為700請輸入你想使用的功能序號
1:充值
2:轉(zhuǎn)賬
3:提現(xiàn)
4:查詢余額
0:登出
2
請輸入轉(zhuǎn)賬方:xilou
請輸入接收方:heiren
輸入轉(zhuǎn)賬金額:200
轉(zhuǎn)賬成功,已成功從xilou向heiren匯款200請輸入你想使用的功能序號
1:充值
2:轉(zhuǎn)賬
3:提現(xiàn)
4:查詢余額
0:登出
3
輸入用戶名:xilou
輸入提現(xiàn)金額100
已從余額中取出100,現(xiàn)余額為400請輸入你想使用的功能序號
1:充值
2:轉(zhuǎn)賬
3:提現(xiàn)
4:查詢余額
0:登出
4
輸入用戶名:xilou
當(dāng)前余額為:400請輸入你想使用的功能序號
1:充值
2:轉(zhuǎn)賬
3:提現(xiàn)
4:查詢余額
0:登出
0
已成功登出Process finished with exit code 0
關(guān)于使用Python怎么實現(xiàn)一個ATM功能就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
網(wǎng)站欄目:使用Python怎么實現(xiàn)一個ATM功能-創(chuàng)新互聯(lián)
標(biāo)題來源:http://www.rwnh.cn/article22/djpjcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、面包屑導(dǎo)航、營銷型網(wǎng)站建設(shè)、Google、商城網(wǎng)站、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容