Python實現注冊和登錄


一、注冊賬號需要實現的功能

1、輸入:用戶名,密碼,密碼確認

2、限制1:輸入的賬號和密碼不能為空

3、限制2:兩次輸入密碼必須一致

4、限制3:用戶名不能重復

5、限制4:錯誤次數為4次

6、用字典保存,格式如下;其中,只需要輸入username和passwd,新注冊用戶role默認都為1

{  '張三': {'passwd': '123', 'role': '1'}, '李四': {'passwd': 'abc', 'role': '2'}  }

 

二、實現注冊代碼

f = open("users.txt", 'r+')
users = eval(f.read()) #f.read()讀取的是字符串,用eval()將字符串轉化為字典
for i in range(4):
    name = input('請輸入姓名: ')
    passwd = input('請輸入密碼: ')
    c_passwd = input('請再次確認密碼: ')
    if len(name.strip()) != 0 and name not in users and len(passwd.strip()) != 0 and passwd == c_passwd:
        users[name]= {'passwd':passwd, 'role':1} #往字典中插入新數據
        f.seek(0)
        f.truncate()  #清空文件內容
        f.writelines(str(users)) #將字典寫入文件
        print('恭喜,注冊成功')
        f.close()
        break
    elif len(name.strip()) == 0:
        print('用戶名不能為空,請重新輸入。還可輸入%d次' %(3-i))
    elif name in users:
        print('用戶名重復,請重新輸入。還可輸入%d次' %(3-i))
    elif len(passwd.strip()) == 0:
        print('密碼不能為空,請重新輸入。還可輸入%d次' %(3-i))
    elif c_passwd != passwd:
        print('兩次輸入的密碼不一致,請重新輸入。還可輸入%d次' %(3-i))

 

三、實現登錄代碼

f = open("users.txt", 'r', encoding='utf8')
users = eval(f.read())
for count in range(3):
    name = input('請輸入用戶名: ')
    password = input('請輸入密碼: ')
    if name in users and password == users[name]['passwd']:
        print('登錄成功!')
        break
    else:
        print('用戶名或密碼錯誤,還有%d次機會'%(2-count))
f.close()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM