欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)ATM系統(tǒng)

 更新時(shí)間:2020年02月17日 11:47:47   作者:我和我的口袋裙  
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)ATM系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

今天偶爾在知乎上看到某大佬用Python寫的ATM系統(tǒng)案例,然后觀摩了下他的實(shí)現(xiàn)思路和源碼,感覺(jué)受益頗多,于是就根據(jù)自己的思路和目前掌握的Python編程基礎(chǔ)將ATM實(shí)現(xiàn)了一下,以下是案例解析的過(guò)程:

案例剖析:

1.atm主頁(yè)面顯示.
2.賬號(hào)驗(yàn)證.
3.查詢余額.
4.存款.
5.取款.
6.修改密碼.

ps:我的思路是將以上的功能分成幾大塊,通過(guò)函數(shù),循環(huán)和返回值來(lái)實(shí)現(xiàn),話不多說(shuō)直接上代碼.

代碼:

1.atm主頁(yè)面顯示

def index(nowUser):
 print('=' * 10, '自動(dòng)存取款機(jī)', '=' * 10)
 print(getName(nowUser), '歡迎登陸!')
 print('{:<10}{:^10}{:<10}'.format('1.修改密碼', ' ', '2.查詢余額'))
 print('{:<10}{:^12}{:<10}'.format('3.存錢', ' ', '4.取錢'))
 print('輸入\'exit\'退出操作')

ps:使用format來(lái)進(jìn)行格式的定義.

2.賬號(hào)驗(yàn)證

def getId(nowUser):
 '''獲取當(dāng)前用戶在列表中的位置'''
 index = -1
 for i in range(len(userList)):
  if userList[i]['cardid'] == nowUser:
   index = i # 如果用戶存在則返回它在列表中的下標(biāo)
   break
 return index # 如果用戶不存在則返回-1


def getName(nowUser):
 ''' 獲取用戶姓名'''
 index = getId(nowUser)
 return userList[index]['name']


def checkUser(cardid, password):
 '''自定義用戶檢測(cè)功能,包括卡號(hào)及密碼檢測(cè)'''
 index = getId(cardid)
 if index == -1: # 如果用戶不存在
  return 'noCardId' # 卡號(hào)不存在
 else:
  if userList[index]['cardid'] == cardid and userList[index]['password'] == password: # 用戶存在并且賬號(hào)密碼正確
   return 'login' # 密碼正確
  else:
   return 'errorPW' # 密碼錯(cuò)誤

ps:使用循環(huán)和返回值來(lái)進(jìn)行賬號(hào)的對(duì)比和檢測(cè).

3.查詢余額

def showMoney(nowUser):
 '''查詢余額'''
 index = getId(nowUser)
 print('您當(dāng)前的賬戶余額為:', 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.定義用戶操作函數(shù)

# 用戶操作
def userChoice(nowUser):
 choices = ['1', '2', '3', '4', 'exit']
 # 循環(huán)獲取用戶操作
 while True:
  index(nowUser)
  choice = input('請(qǐng)選擇操作:')
  if choice == '1': # 選擇修改密碼
   oldPW = input('請(qǐng)輸入原始密碼:')
   flag = checkUser(nowUser, oldPW)
   if flag == "errorPW":
    # print('密碼錯(cuò)誤!請(qǐng)重新輸入,或輸入\'back\'返回上一級(jí)')
    print('密碼錯(cuò)誤!返回主界面')
   elif flag == 'login':
    changePW(nowUser, input('請(qǐng)輸入新密碼:'))
    print('修改密碼成功!')
    continue
  elif choice == '2': # 選擇查詢余額
   showMoney(nowUser)
   continue
  elif choice == '3': # 選擇存錢
   saveMoney(nowUser, input('請(qǐng)輸入存入金額:'))
   continue
  elif choice == '4': # 選擇取錢
   drawMoney(nowUser, input('請(qǐng)輸入取出金額:'))
   continue
  elif choice == 'exit':
   main() # 返回主界面
  elif choice not in choices:
   print('錯(cuò)誤操作,請(qǐng)重新輸入選項(xiàng)!')
   continue

8.定義main主函數(shù)

# 主界面
def main():
 # 定義錯(cuò)誤次數(shù)
 errorTime = 0
 if errorTime >= 3: # 錯(cuò)誤次數(shù)達(dá)三次退出系統(tǒng)后清零
  errorTime = 0
 while True:
  # crs登陸主界面
  print('=' * 10, '自動(dòng)存取款機(jī)', '=' * 10)
  nowUser = ''
  # 用戶輸入卡號(hào)和密碼
  cardid = input('請(qǐng)輸入卡號(hào):')
  password = input('請(qǐng)輸入密碼:')

  # 判斷卡號(hào)密碼是否存在正確
  # 卡號(hào)不存在
  flag = checkUser(cardid, password)

  if flag == 'noCardId':
   print('卡號(hào)不存在!請(qǐng)重新輸入')
   continue

  # 密碼錯(cuò)誤
  elif flag == 'errorPW':
   errorTime += 1
   print('密碼錯(cuò)誤!錯(cuò)誤次數(shù)達(dá)三次將自動(dòng)退出本系統(tǒng)!')
   print("錯(cuò)誤次數(shù):", errorTime)
   if errorTime >= 3: # 錯(cuò)誤次數(shù)達(dá)三次自動(dòng)退出
    print('密碼輸錯(cuò)三次,自動(dòng)退出系統(tǒng)!')
    exit(0)
   continue

  # 卡號(hào)密碼正確進(jìn)入系統(tǒng)
  else:
   nowUser = cardid
   userChoice(nowUser)

9.最后定義函數(shù)主入口,進(jìn)行ATM系統(tǒng)的測(cè)試

if __name__ == '__main__':

 main()

收獲:

通過(guò)ATM案例 ,將之前學(xué)習(xí)的Python基礎(chǔ)重新進(jìn)行了一次鞏固,梳理和融會(huì)貫通,個(gè)人感覺(jué) Python的函數(shù)和返回值是個(gè)特別神奇的東西,當(dāng)然這個(gè)案例還有很大的改進(jìn)空間,大家有什么好的建議也可以給我留言,我之后會(huì)慢慢進(jìn)行改良噠!

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解python3類型注釋annotations實(shí)用案例

    詳解python3類型注釋annotations實(shí)用案例

    這篇文章主要介紹了詳解python3類型注釋annotations實(shí)用案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • python實(shí)現(xiàn)時(shí)間o(1)的最小棧的實(shí)例代碼

    python實(shí)現(xiàn)時(shí)間o(1)的最小棧的實(shí)例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)時(shí)間o(1)的最小棧的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Python隊(duì)列、進(jìn)程間通信、線程案例

    Python隊(duì)列、進(jìn)程間通信、線程案例

    這篇文章主要介紹了Python隊(duì)列、進(jìn)程間通信、線程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • pycharm 實(shí)現(xiàn)復(fù)制一行的快捷鍵

    pycharm 實(shí)現(xiàn)復(fù)制一行的快捷鍵

    這篇文章主要介紹了pycharm 實(shí)現(xiàn)復(fù)制一行的快捷鍵,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • python3.x 生成3維隨機(jī)數(shù)組實(shí)例

    python3.x 生成3維隨機(jī)數(shù)組實(shí)例

    今天小編就為大家分享一篇python3.x 生成3維隨機(jī)數(shù)組實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • 導(dǎo)入tensorflow:ImportError: libcublas.so.9.0 報(bào)錯(cuò)

    導(dǎo)入tensorflow:ImportError: libcublas.so.9.0 報(bào)錯(cuò)

    這篇文章主要介紹了導(dǎo)入tensorflow:ImportError: libcublas.so.9.0 報(bào)錯(cuò),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 從CentOS安裝完成到生成詞云python的實(shí)例

    從CentOS安裝完成到生成詞云python的實(shí)例

    下面小編就為大家分享一篇從CentOS安裝完成到生成詞云python的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助
    2017-12-12
  • 利用Python中?Rembg庫(kù)實(shí)現(xiàn)去除圖片背景

    利用Python中?Rembg庫(kù)實(shí)現(xiàn)去除圖片背景

    這篇文章主要介紹了利用Python中?Rembg庫(kù)實(shí)現(xiàn)去除圖片背景,文章基于?Rembg庫(kù)得運(yùn)用展開(kāi)詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • python切割圖片的示例

    python切割圖片的示例

    這篇文章主要介紹了利用python切割圖片的示例,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下
    2020-11-11
  • 基于Python實(shí)現(xiàn)快遞信息提取

    基于Python實(shí)現(xiàn)快遞信息提取

    這篇文章主要為大家介紹了如何利用Python實(shí)現(xiàn)提取快遞信息,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-03-03

最新評(píng)論