日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python實現注冊登錄功能_python

作者:程序改變世界~ ? 更新時間: 2022-04-14 編程語言

用Python寫個注冊登錄功能,供大家參考,具體內容如下

本文是用Python寫一個注冊登錄功能,難度不大,很適合練手
主要就是用列表和字典,以及邏輯判斷
用到的第3方庫模塊是time模塊,以及re(正則表達式)模塊
這里使用time模塊就是為了通過sleep方法,讓程序運行有進程感,不是一下子蹦出所有信息
使用re模塊就是用于判斷密碼的復雜性,我們注冊軟件系統判斷我們的密碼是否足夠復雜就是通過正則表達式去判斷的

首先第1步就是導入這2個模塊,即

import time
import re

之后需要1個列表用于存儲注冊的id,需要一個字典,來將ID與密碼綁定在一起,因為字典是key:value格式,以ID作為key,密碼(password)作為value,就實現了綁定

代碼可表示為

user_id=[] #存儲用戶id
user_dict={} #將id與密碼綁定

之后就要詢問用戶是否注冊過賬號,如果沒注冊,就提示用戶注冊賬號,可以通過一個變量接收用戶的選擇,然后進行對應的操作

choice=input('您是否注冊過賬號 沒有請注冊 1:注冊 2:登錄 3:退出系統')

輸入1,就進入到注冊界面,注冊首先需要輸入用戶名,輸入密碼,最后提示用戶注冊成功
然后需要將用戶的id加入到user_id中,用字典存儲用戶的id和密碼,即

user_name=input('請輸入用戶名')
password=input('請輸入密碼')
user_id.append(user_name)
for item in user_id:
?? ?if item not in user_dict:
?? ??? ?user_dict[item]=password
print('注冊成功!)

注冊好就需要登錄了,這個過程相比于注冊稍稍麻煩些
首先,需要判斷用戶輸入的id是否注冊過(也就是輸入的id是否在user_id中)
之后,若存在,還需匹配密碼正確與否,正確才可登錄。
但是,可能用戶會忘記密碼,雖然我們可以通過字典查看密碼并打印給用戶,但是一般不建議這么做,盡量建議用戶修改密碼,以及用戶輸入了未注冊的ID,需要建議用戶注冊,提高效率。
判斷元素是否在列表中只需要i in list即可,若為真,則元素存在于列表中,反之不在

while 1:
?? ?name=input('請輸入用戶名')
?? ?key=input('請輸入密碼')
?? ?if name in user_id:
?? ??? ?if user_dict[name]==key:
?? ??? ??? ?print('登錄成功')
?? ??? ??? ?break
?? ??? ?else:
?? ??? ??? ?print('密碼錯誤 請檢查好輸入')
?? ??? ??? ?q=input('您是否選擇更改密碼 輸入y更改 輸入其他退出')
?? ??? ??? ?if q=='y':
?? ??? ??? ??? ?new_password=input('請輸入新密碼')
? ? ? ? ? ? ? ? user_dict[name]=new_password
?? ??? ??? ??? ?print('密碼修改成功!')
?? ??? ??? ?else:
?? ??? ??? ??? ??? ?break
?? ?else:
?? ??? ?print('用戶名不存在 請檢查好輸入')
?? ??? ?r=input('您是否需要注冊賬號 輸入1注冊 其他退出')
?? ??? ?if r=='1':
?? ??? ??? ?user_login=input('請輸入要注冊的用戶名')
? ? ? ? ? ? password_login=input('請輸入您的登錄密碼')
? ? ? ? ? ? user_id.append(user_login)
? ? ? ? ? ? for num in user_id:
?? ??? ??? ??? ?if num not in user_dict:
??? ??? ??? ??? ??? ?user_dict[user_login]=password_login
? ? ? ? ? ? ? ? ? ? print('注冊成功')
? ? ?? ? else:
? ? ? ? ??? ?break

值得注意的是,一定要先判斷id是否存在,而不是直接判斷密碼,因為沒注冊的id在字典中沒有對應的鍵,會報錯誤Keyerror

之后就是退出程序了,建議5s緩沖在退出,不至于太突然 可以使用time.sleep()方法

print('感謝您的使用,程序將在5秒后退出')
for i in range(5):
?? ?time.sleep(1)
?? ?print('程序將在{}秒后退出'.format(5-i))

至此,項目功能就全部完成了,下面是項目的源代碼:
上面沒有講正則表達式,源代碼中帶有正則表達式判斷是否含有字母

import time
print('----------感謝您使用本系統------------')
user_id=[]
user_dict={}
time.sleep(1)
while 1:
? ? choice=input('您是否注冊過賬號 沒有請注冊 1:注冊 2:登錄 3:退出系統')
? ? if choice=='1':
? ? ? ? user_name=input('請輸入用戶名')
? ? ? ? while 1:
? ? ? ? ?? ?password=input('請輸入密碼 需要包含字母')
? ? ? ? ?? ?p=re.compile('^.*[A-Z a-z]+.*$')
? ? ? ? ?? ?if p.match(password):
? ? ? ? ?? ??? ?break
? ? ? ? ?? ?else:
? ? ? ? ?? ??? ?print('密碼不夠復雜 重新輸入')
? ? ? ? user_id.append(user_name)
? ? ? ? for item in user_id:
? ? ? ? ? ? if item not in user_dict:
? ? ? ? ? ? ? ? user_dict[item]=password
? ? elif choice=='2':
? ? ? ? while 1:
? ? ? ? ? ? name=input('請輸入用戶名')
? ? ? ? ? ? key=input('請輸入密碼')
? ? ? ? ? ? if name in user_id:
? ? ? ? ? ? ? ? if user_dict[name]==key:
? ? ? ? ? ? ? ? ? ? print('登錄成功')
? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? print('密碼錯誤 請檢查好輸入')
? ? ? ? ? ? ? ? ? ? q=input('您是否選擇更改密碼 輸入y更改 輸入其他退出')
? ? ? ? ? ? ? ? ? ? if q=='y':
? ? ? ? ? ? ? ? ? ? ?? ?while 1:
? ? ? ? ? ? ? ? ? ? ? ? ?? ?new_password1=input('請輸入新密碼')
? ? ? ? ? ? ? ? ? ? ? ? ?? ?new_password2=input('請確認新密碼')
? ? ? ? ? ? ? ? ? ? ? ? ?? ?if new_password_1==new_password2:
? ? ? ? ? ? ? ? ? ? ? ? ?? ??? ?user_dict[name]=new_password1
? ? ? ? ? ? ? ? ? ? ? ? ?? ??? ?break
? ? ? ? ? ? ? ? ? ? ? ? ?? ?else:
? ? ? ? ? ? ? ? ? ? ? ? ?? ??? ?print('兩次密碼輸入不一致,請重新輸入')
? ? ? ? ? ? ? ? ? ? ? ? print('密碼修改成功!')
? ? ? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? print('用戶名不存在 請檢查好輸入')
? ? ? ? ? ? ? ? r=input('您是否需要注冊賬號 輸入1注冊 其他退出')
? ? ? ? ? ? ? ? if r=='1':
? ? ? ? ? ? ? ? ? ? user_login=input('請輸入要注冊的用戶名')
? ? ? ? ? ? ? ? ? ? password_login=input('請輸入您的登錄密碼')
? ? ? ? ? ? ? ? ? ? user_id.append(user_login)
? ? ? ? ? ? ? ? ? ? for num in user_id:
? ? ? ? ? ? ? ? ? ? ? ? if num not in user_dict:
? ? ? ? ? ? ? ? ? ? ? ? ? ? user_dict[user_login]=password_login
? ? ? ? ? ? ? ? ? ? print('注冊成功')
? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? ? ? ? ??
? ? else:
? ? ? ? print('感謝您的使用,程序將在5秒后退出')
? ? ? ? for i in range(1,5):
? ? ? ? ? ? time.sleep(1)
? ? ? ? ? ? print('程序將在{}秒后退出'.format(5-i))
? ? ? ? break

原文鏈接:https://blog.csdn.net/weixin_45939558/article/details/112711843

欄目分類
最近更新