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

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

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

2020-02-15 22:53:09
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1.工作流程

這里寫(xiě)圖片描述

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

代碼如下:

import msvcrt, sys, os#定義用星號(hào)隱藏密碼輸入的函數(shù)def psw_input():  li = []  while True:    ch = msvcrt.getch()    #回車(chē)    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,"沒(méi)有該選項(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            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 万全县| 吴忠市| 潞城市| 北海市| 罗平县| 金川县| 海林市| 仁布县| 巨野县| 富平县| 博野县| 齐齐哈尔市| 奈曼旗| 陆河县| 昭苏县| 和顺县| 永年县| 清涧县| 徐闻县| 孝感市| 延寿县| 拉孜县| 灵璧县| 宜宾市| 城步| 长泰县| 麻栗坡县| 岳阳县| 和田市| 乌拉特后旗| 衡山县| 巴东县| 浏阳市| 启东市| 舟山市| 四子王旗| 遂溪县| 彩票| 宣武区| 汾西县| 上栗县|