網站首頁 編程語言 正文
本文實例為大家分享了Python實現用戶注冊登錄程序的具體代碼,供大家參考,具體內容如下
要求:
1.支持多個用戶登錄(把已有的用戶名和密碼存放在一個文件中,鎖定的用戶名存放在另一個文件中)
2.輸入正確的用戶名和密碼,則登錄成功;密碼錯誤,可以重新輸入密碼兩次;用戶名錯誤,可以重新注冊用戶名,也可以重新輸入用戶名和密碼。
3.用戶名輸入正確,密碼錯誤三次后,鎖定用戶名,退出;
4.輸入三次后,退出程序。
代碼如下:
user_pw=open('username_file','r+',encoding='utf_8') ?#打開存放用戶名和密碼的文件 lock_user=open('lock_file','r+',encoding='utf-8') #打開存放被鎖定用戶的文件 LU=[]#用來存放被鎖定用戶的用戶名 UP_user=[] #用來存放文件中已有的用戶名 UP_pw=[]#用來存放文件中已有用戶的密碼 in_user=[]#存放運行過程中用戶輸入的用戶名,用來判斷用戶輸入某一個用戶名的次數是否超過3次 count=0 #計算用戶的登錄次數 count1=0 #計算用戶輸入密碼的次數 #讀取文件中存放的用戶名和密碼,并存放到列表UP_user和UP_pw中 for line in user_pw.readlines(): ? ? u,p=line.split()#把一行的字符串按空格分割成兩個字符串 ? ? UP_user.append(u) ? ? UP_pw.append(p) #讀取用戶名被鎖定的用戶,存放到列表LU中 for line in lock_user.readlines(): ? ? l=line.strip() ? ? LU.append(l) #用戶輸入用戶名、密碼少于三次 while count<3: ? ? user=input("請輸入用戶名") ? ? in_user.append(user) ? ? pw=input("請輸入密碼") ? ? if user in LU:#判斷輸入的用戶名是否在被鎖定用戶中 ? ? ? ? print("用戶已鎖定") ? ? ? ? break ? ? if user in UP_user:#輸入的用戶名沒有被鎖定 ? ? ? ? i=UP_user.index(user)#找到輸入的用戶名在列表中的索引值 ? ? ? ? if pw==UP_pw[i]:#找到相同索引的密碼判斷和輸入的密碼是否一致 ? ? ? ? ? ? print("登錄成功") ? ? ? ? ? ? break ? ? ? ? else: ? ? ? ? ? ? print("密碼錯誤") ? ? ? ? ? ? while count1<2:#用來判斷用戶輸入了幾次密碼(一共三次,最開始已經輸入了一次,所以還剩兩次) ? ? ? ? ? ? ? ? pw1=input("請重新輸入密碼") ? ? ? ? ? ? ? ? if pw1==UP_pw[i]: ? ? ? ? ? ? ? ? ? ? print("登錄成功") ? ? ? ? ? ? ? ? ? ? break ? ? ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? ? ? print("密碼錯誤") ? ? ? ? ? ? ? ? count1+=1 ? ? ? ? ? ? count=3 ? ? ? ? ? ? break ? ? else: ? ? ? ? print("該用戶名未注冊,注冊請輸入'yes',按任意鍵重新輸入用戶名") ? ? ? ? a=input() ? ? ? ? #注冊 ? ? ? ? if a=='yes': ? ? ? ? ? ? print(user) ? ? ? ? ? ? print(pw) ? ? ? ? ? ? user_pw.write(user+' '+pw+'\n')#把用戶名密碼存放到文件中 ? ? ? ? ? ? UP_user.append(user)#把用戶名和密碼存放到數組中 ? ? ? ? ? ? UP_pw.append(pw) ? ? ? ? ? ? print('注冊成功') ? ? count+=1 if count==3: ? ? print("您輸入的次數太多") ? ? for iu in in_user: ? ? ? ? if in_user.count(iu)>=3: ? ? ? ? ? ? lock_user.write(iu+'\n')#把輸入超過三次的用戶名鎖定到文件中 ? ? ? ? ? ? print('用戶名'+iu+'已鎖定') ? ? ? ? ? ? break lock_user.closed user_pw.closed
測試結果:
(1)
(2)
(3)
(4)
原文鏈接:https://www.cnblogs.com/come-on-baby/p/9354836.html
- 上一篇:k8s安裝過程遇到的問題
- 下一篇:python實現購物車小程序_python
相關推薦
- 2022-07-19 Linux手工配置靜態ip地址
- 2022-02-17 uni-app的 tabBar添加陰影
- 2022-07-29 django?restframework序列化字段校驗規則_python
- 2022-07-13 VMware Workstation Pro界面設置為中文界面
- 2022-10-19 react編寫可編輯標題示例詳解_React
- 2022-07-07 python中列表對象pop()方法的使用說明_python
- 2022-04-01 Python格式化輸出之format用法詳解_python
- 2022-09-13 C語言實現統計一行字符串的單詞個數_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支