日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python atm银行取款系统_Python实现ATM系统

發布時間:2023/12/10 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python atm银行取款系统_Python实现ATM系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天偶爾在知乎上看到某大佬用Python寫的ATM系統案例,然后觀摩了下他的實現思路和源碼,感覺受益頗多,于是就根據自己的思路和目前掌握的Python編程基礎將ATM實現了一下,以下是案例解析的過程:

案例剖析:

1.atm主頁面顯示.

2.賬號驗證.

3.查詢余額.

4.存款.

5.取款.

6.修改密碼.

ps:我的思路是將以上的功能分成幾大塊,通過函數,循環和返回值來實現,話不多說直接上代碼.

代碼:

1.atm主頁面顯示

def index(nowUser):

print('=' * 10, '自動存取款機', '=' * 10)

print(getName(nowUser), '歡迎登陸!')

print('{:<10}{:^10}{:<10}'.format('1.修改密碼', ' ', '2.查詢余額'))

print('{:<10}{:^12}{:<10}'.format('3.存錢', ' ', '4.取錢'))

print('輸入\'exit\'退出操作')

ps:使用format來進行格式的定義.

2.賬號驗證

def getId(nowUser):

'''獲取當前用戶在列表中的位置'''

index = -1

for i in range(len(userList)):

if userList[i]['cardid'] == nowUser:

index = i # 如果用戶存在則返回它在列表中的下標

break

return index # 如果用戶不存在則返回-1

def getName(nowUser):

''' 獲取用戶姓名'''

index = getId(nowUser)

return userList[index]['name']

def checkUser(cardid, password):

'''自定義用戶檢測功能,包括卡號及密碼檢測'''

index = getId(cardid)

if index == -1: # 如果用戶不存在

return 'noCardId' # 卡號不存在

else:

if userList[index]['cardid'] == cardid and userList[index]['password'] == password: # 用戶存在并且賬號密碼正確

return 'login' # 密碼正確

else:

return 'errorPW' # 密碼錯誤

ps:使用循環和返回值來進行賬號的對比和檢測.

3.查詢余額

def showMoney(nowUser):

'''查詢余額'''

index = getId(nowUser)

print('您當前的賬戶余額為:', userList[index]['money'], '元')

4.存錢

def saveMoney(nowUser, money):

'''存錢'''

index = getId(nowUser)

print("輸入的金額是:", money)

userList[index]['money'] += int(money)

print('存入成功!')

5.取錢

def drawMoney(nowUser, money):

'''取錢'''

index = getId(nowUser)

nowMoney = userList[index]['money']

if nowMoney >= int(money):

userList[index]['money'] -= int(money)

print('已取出', money, '元')

else:

print('賬戶余額不足!')

6.修改密碼

def changePW(nowUser, newPW):

'''修改密碼'''

index = getId(nowUser)

userList[index]['password'] = newPW

7.定義用戶操作函數

# 用戶操作

def userChoice(nowUser):

choices = ['1', '2', '3', '4', 'exit']

# 循環獲取用戶操作

while True:

index(nowUser)

choice = input('請選擇操作:')

if choice == '1': # 選擇修改密碼

oldPW = input('請輸入原始密碼:')

flag = checkUser(nowUser, oldPW)

if flag == "errorPW":

# print('密碼錯誤!請重新輸入,或輸入\'back\'返回上一級')

print('密碼錯誤!返回主界面')

elif flag == 'login':

changePW(nowUser, input('請輸入新密碼:'))

print('修改密碼成功!')

continue

elif choice == '2': # 選擇查詢余額

showMoney(nowUser)

continue

elif choice == '3': # 選擇存錢

saveMoney(nowUser, input('請輸入存入金額:'))

continue

elif choice == '4': # 選擇取錢

drawMoney(nowUser, input('請輸入取出金額:'))

continue

elif choice == 'exit':

main() # 返回主界面

elif choice not in choices:

print('錯誤操作,請重新輸入選項!')

continue

8.定義main主函數

# 主界面

def main():

# 定義錯誤次數

errorTime = 0

if errorTime >= 3: # 錯誤次數達三次退出系統后清零

errorTime = 0

while True:

# crs登陸主界面

print('=' * 10, '自動存取款機', '=' * 10)

nowUser = ''

# 用戶輸入卡號和密碼

cardid = input('請輸入卡號:')

password = input('請輸入密碼:')

# 判斷卡號密碼是否存在正確

# 卡號不存在

flag = checkUser(cardid, password)

if flag == 'noCardId':

print('卡號不存在!請重新輸入')

continue

# 密碼錯誤

elif flag == 'errorPW':

errorTime += 1

print('密碼錯誤!錯誤次數達三次將自動退出本系統!')

print("錯誤次數:", errorTime)

if errorTime >= 3: # 錯誤次數達三次自動退出

print('密碼輸錯三次,自動退出系統!')

exit(0)

continue

# 卡號密碼正確進入系統

else:

nowUser = cardid

userChoice(nowUser)

9.最后定義函數主入口,進行ATM系統的測試

if __name__ == '__main__':

main()

收獲:

通過ATM案例 ,將之前學習的Python基礎重新進行了一次鞏固,梳理和融會貫通,個人感覺 Python的函數和返回值是個特別神奇的東西,當然這個案例還有很大的改進空間,大家有什么好的建議也可以給我留言,我之后會慢慢進行改良噠!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持我們。

時間: 2020-02-14

總結

以上是生活随笔為你收集整理的python atm银行取款系统_Python实现ATM系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。