国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Python模擬自動(dòng)存取款機(jī)的查詢、存取款、修改密碼等操作

2020-01-04 14:35:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1.工作流程

Python,自動(dòng)存取款機(jī)

2.模擬自動(dòng)存取款機(jī)的操作

代碼如下:

import msvcrt, sys, os#定義用星號(hào)隱藏密碼輸入的函數(shù)def psw_input():  li = []  while True:    ch = msvcrt.getch()    #回車    if ch == b'/r':      msvcrt.putch(b'/n')      break    #退格    elif ch == b'/x08':      if li:        li.pop()        msvcrt.putch(b'/b')        msvcrt.putch(b' ')        msvcrt.putch(b'/b')    #Esc    elif ch == b'/x1b':      break    else:      li.append(ch)      msvcrt.putch(b'*')  return li#定義CSDN銀行ATM歡迎界面的函數(shù)def ATM():  '''  CSDN銀行ATM歡迎界面的函數(shù)  '''  print("="*14,"Bank of CSDN","="*14,"/n")  print("{:^42}".format("ATM"),"/n")  print("="*14,"Bank of CSDN","="*14,"/n")#CSDN銀行用戶列表信息,用戶信息包含:姓名、余額、密碼(6位)、銀行卡號(hào)(19位)user_list = [{"name":"張 三","balance":10000,"password":"000000","numbers":"0000000000000000000"},{"name":"李 四","balance":20000,"password":"111111","numbers":"1111111111111111111"},{"name":"王 五","balance":30000,"password":"222222","numbers":"2222222222222222222"}]#定義驗(yàn)證銀行卡號(hào)與密碼匹配的函數(shù)def check(user_name,user_password):  '''  驗(yàn)證銀行卡號(hào)與密碼匹配的函數(shù)  '''   for i in range(len(user_list)):    if user_name == user_list[i]["numbers"] and user_password == user_list[i]["password"]:      return i #銀行卡號(hào)與密碼匹配則返回該用戶在ATM系統(tǒng)內(nèi)的ID值,否則返回None值#定義用戶登錄成功后操作界面的函數(shù)def interface():  '''  用戶登錄成功后操作界面的函數(shù)  '''  print("="*14,"用戶操作界面","="*14,"/n")  print("{0:2} {1:12} {2:12} {3:12}".format(" ","1. 查詢","2. 取款","3. 存款"),"/n")  print("{0:2} {1:10} {2:12}".format(" ","4. 修改密碼","5. 退出"),"/n")  print("="*42,"/n")#定義用戶查詢信息的函數(shù)def inquire(user_id):  '''  用戶查詢信息的函數(shù)  '''  print("="*14,"賬號(hào)查詢界面","="*14,"/n")  print("|{0:<4}|{1:<18}|{2:<9}|/n".format("賬戶名","卡號(hào)","余額(RMB)"))  print("|{0:<5}|{1:<20}|{2:<11}|/n".format(user_list[user_id]["name"],user_list[user_id]["numbers"],user_list[user_id]["balance"]))#定義用戶取款的函數(shù)def withdrawal(amount):  '''  用戶取款的函數(shù)  '''  i = user_list[user_id]["balance"]-int(amount)  if i>=0:    user_list[user_id]["balance"]-=int(amount)  else:    print("賬戶余額不足/n")#定義用戶存款的函數(shù)def deposit(amount):  '''  用戶存款的函數(shù)  '''  user_list[user_id]["balance"]+=int(amount)#定義用戶修改密碼的函數(shù)def change_password(old_password,new_password1,new_password2):  '''  用戶修改密碼的函數(shù)  '''  if old_password == user_list[user_id]["password"]:    if new_password1 == new_password2:      user_list[user_id]["password"] = new_password1      print("新密碼修改成功/n")      return 1    else:      print("修改密碼失敗,您2次輸入的新密碼不一致/n")      return 2  else:    print("舊密碼輸入錯(cuò)誤/n")    return 0#用戶登錄界面,輸入銀行卡號(hào)和密碼chance = 3 #允許3次用戶名或密碼輸入錯(cuò)誤while True:  ATM()  user_name = input("請(qǐng)輸入您的銀行卡卡號(hào):")  print("")  print("請(qǐng)輸入您的銀行卡密碼:", end=' ', flush=True)  user_password = b''.join(psw_input()).decode()  print("")  user_id = check(user_name,user_password)#驗(yàn)證銀行卡號(hào)與密碼是否匹配  if user_id != None:    print("登錄成功/n")    while True:      interface()      key_word = input("請(qǐng)輸入操作選項(xiàng):")      print("")      if key_word == "1":        inquire(user_id)        input("按任意鍵返回上一級(jí)目錄:")        print("")      elif key_word == "2":        print("="*14,"賬號(hào)取款界面","="*14,"/n")        amount = input("請(qǐng)輸入取款金額:")        print("")        withdrawal(amount)        inquire(user_id)        input("按任意鍵返回上一級(jí)目錄:")        print("")      elif key_word == "3":        print("="*14,"賬號(hào)存款界面","="*14,"/n")        amount = input("請(qǐng)輸入存款金額:")        print("")        deposit(amount)        inquire(user_id)        input("按任意鍵返回上一級(jí)目錄:")        print("")      elif key_word == "4":        print("="*14,"密碼管理界面","="*14,"/n")        print("請(qǐng)輸入舊密碼:", end=' ', flush=True)        old_password = b''.join(psw_input()).decode()        print("")        print("請(qǐng)輸入新密碼:", end=' ', flush=True)        new_password1 = b''.join(psw_input()).decode()        print("")        print("請(qǐng)?jiān)俅屋斎胄旅艽a:", end=' ', flush=True)        new_password2 = b''.join(psw_input()).decode()        print("")                save = change_password(old_password,new_password1,new_password2)        #如何檢測(cè)到舊密碼輸入有誤,將直接退出        if save == 0:          break      elif key_word == "5":        print("="*14,"歡迎下次光臨","="*14,"/n")        break      else:        print("="*14,"沒有該選項(xiàng)","="*14,"/n")  else:    if chance > 1:           print("用戶名或密碼錯(cuò)誤,您還有",chance-1,"次機(jī)會(huì),請(qǐng)重新輸入/n")      chance -= 1    else:      print("對(duì)不起,您輸入用戶名或密碼錯(cuò)誤已達(dá)3次")      break

3.運(yùn)行結(jié)果

有以下初始用戶信息備測(cè)試用:

姓名 銀行卡號(hào)(19位) 密碼(6位) 余額(RMB)
張 三 0000000000000000000 000000 10000
李 四 1111111111111111111 111111 20000
王 五 2222222222222222222 222222 30000

Python,自動(dòng)存取款機(jī)

輸入卡號(hào)和密碼進(jìn)入用戶操作界面 

Python,自動(dòng)存取款機(jī)

查詢余額界面 

Python,自動(dòng)存取款機(jī)  

取款界面 

Python,自動(dòng)存取款機(jī)

存款界面 

Python,自動(dòng)存取款機(jī)

修改密碼界面

總結(jié)

以上所述是小編給大家介紹的Python模擬自動(dòng)存取款機(jī)的查詢、存取款、修改密碼等操作,希望對(duì)大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到python教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宣武区| 武安市| 乡城县| 乌什县| 双峰县| 曲松县| 栾城县| 白朗县| 绍兴市| 克什克腾旗| 东源县| 天等县| 五台县| 榕江县| 肥乡县| 承德县| 沈丘县| 潞城市| 长治县| 天峻县| 湛江市| 晋江市| 张家界市| 万安县| 大悟县| 洛阳市| 泽库县| 巧家县| 甘洛县| 台北市| 赤壁市| 嫩江县| 元谋县| 翁牛特旗| 普洱| 临高县| 浏阳市| 铜鼓县| 乃东县| 临江市| 磐石市|