Python實(shí)現(xiàn)注冊登錄功能
用Python寫個(gè)注冊登錄功能,供大家參考,具體內(nèi)容如下
本文是用Python寫一個(gè)注冊登錄功能,難度不大,很適合練手
主要就是用列表和字典,以及邏輯判斷
用到的第3方庫模塊是time模塊,以及re(正則表達(dá)式)模塊
這里使用time模塊就是為了通過sleep方法,讓程序運(yùn)行有進(jìn)程感,不是一下子蹦出所有信息
使用re模塊就是用于判斷密碼的復(fù)雜性,我們注冊軟件系統(tǒng)判斷我們的密碼是否足夠復(fù)雜就是通過正則表達(dá)式去判斷的
首先第1步就是導(dǎo)入這2個(gè)模塊,即
import time import re
之后需要1個(gè)列表用于存儲注冊的id,需要一個(gè)字典,來將ID與密碼綁定在一起,因?yàn)樽值涫莐ey:value格式,以ID作為key,密碼(password)作為value,就實(shí)現(xiàn)了綁定
代碼可表示為
user_id=[] #存儲用戶id user_dict={} #將id與密碼綁定
之后就要詢問用戶是否注冊過賬號,如果沒注冊,就提示用戶注冊賬號,可以通過一個(gè)變量接收用戶的選擇,然后進(jìn)行對應(yīng)的操作
choice=input('您是否注冊過賬號 沒有請注冊 1:注冊 2:登錄 3:退出系統(tǒng)')
輸入1,就進(jìn)入到注冊界面,注冊首先需要輸入用戶名,輸入密碼,最后提示用戶注冊成功
然后需要將用戶的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('注冊成功!)
注冊好就需要登錄了,這個(gè)過程相比于注冊稍稍麻煩些
首先,需要判斷用戶輸入的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('密碼錯(cuò)誤 請檢查好輸入') ?? ??? ??? ?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是否存在,而不是直接判斷密碼,因?yàn)闆]注冊的id在字典中沒有對應(yīng)的鍵,會報(bào)錯(cuò)誤Keyerror
之后就是退出程序了,建議5s緩沖在退出,不至于太突然 可以使用time.sleep()方法
print('感謝您的使用,程序?qū)⒃?秒后退出') for i in range(5): ?? ?time.sleep(1) ?? ?print('程序?qū)⒃趝}秒后退出'.format(5-i))
至此,項(xiàng)目功能就全部完成了,下面是項(xiàng)目的源代碼:
上面沒有講正則表達(dá)式,源代碼中帶有正則表達(dá)式判斷是否含有字母
import time print('----------感謝您使用本系統(tǒng)------------') user_id=[] user_dict={} time.sleep(1) while 1: ? ? choice=input('您是否注冊過賬號 沒有請注冊 1:注冊 2:登錄 3:退出系統(tǒng)') ? ? if choice=='1': ? ? ? ? user_name=input('請輸入用戶名') ? ? ? ? while 1: ? ? ? ? ?? ?password=input('請輸入密碼 需要包含字母') ? ? ? ? ?? ?p=re.compile('^.*[A-Z a-z]+.*$') ? ? ? ? ?? ?if p.match(password): ? ? ? ? ?? ??? ?break ? ? ? ? ?? ?else: ? ? ? ? ?? ??? ?print('密碼不夠復(fù)雜 重新輸入') ? ? ? ? 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('密碼錯(cuò)誤 請檢查好輸入') ? ? ? ? ? ? ? ? ? ? q=input('您是否選擇更改密碼 輸入y更改 輸入其他退出') ? ? ? ? ? ? ? ? ? ? if q=='y': ? ? ? ? ? ? ? ? ? ? ?? ?while 1: ? ? ? ? ? ? ? ? ? ? ? ? ?? ?new_password1=input('請輸入新密碼') ? ? ? ? ? ? ? ? ? ? ? ? ?? ?new_password2=input('請確認(rèn)新密碼') ? ? ? ? ? ? ? ? ? ? ? ? ?? ?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('感謝您的使用,程序?qū)⒃?秒后退出') ? ? ? ? for i in range(1,5): ? ? ? ? ? ? time.sleep(1) ? ? ? ? ? ? print('程序?qū)⒃趝}秒后退出'.format(5-i)) ? ? ? ? break
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 用Python實(shí)現(xiàn)web端用戶登錄和注冊功能的教程
- Python實(shí)現(xiàn)注冊登錄系統(tǒng)
- Python登錄注冊驗(yàn)證功能實(shí)現(xiàn)
- Python實(shí)現(xiàn)注冊、登錄小程序功能
- Python制作簡易注冊登錄系統(tǒng)
- Python +Selenium解決圖片驗(yàn)證碼登錄或注冊問題(推薦)
- python實(shí)現(xiàn)登錄與注冊系統(tǒng)
- Python3 Tkinkter + SQLite實(shí)現(xiàn)登錄和注冊界面
- python應(yīng)用文件讀取與登錄注冊功能
- Python?+?Tkinter連接本地MySQL數(shù)據(jù)庫簡單實(shí)現(xiàn)注冊登錄
相關(guān)文章
Python實(shí)現(xiàn)平行坐標(biāo)圖的兩種方法小結(jié)
今天小編就為大家分享一篇Python實(shí)現(xiàn)平行坐標(biāo)圖的兩種方法小結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07使用tensorflow根據(jù)輸入更改tensor shape
這篇文章主要介紹了使用tensorflow根據(jù)輸入更改tensor shape,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06基于Python實(shí)現(xiàn)千圖成像工具的示例代碼
千圖成像也就是用N張圖片組成一張圖片的效果。這篇文章將利用Python語言編寫一個(gè)簡單的千圖成像工具,感興趣的小伙伴可以了解一下2022-07-07Django ORM filter() 的運(yùn)用詳解
這篇文章主要介紹了Django ORM filter() 的運(yùn)用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05簡單談?wù)凱ython中函數(shù)的可變參數(shù)
和C語言一樣,Python中也有可變參數(shù)函數(shù),即一個(gè)函數(shù)可以接收多個(gè)參數(shù),而這些參數(shù)的個(gè)數(shù)在函數(shù)調(diào)用之前事先是不知道的。下面這篇文章我們來介紹下python中的可變參數(shù)2016-09-09Tensorflow深度學(xué)習(xí)使用CNN分類英文文本
這篇文章主要為大家介紹了Tensorflow深度學(xué)習(xí)CNN實(shí)現(xiàn)英文文本分類示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11pandas 缺失值與空值處理的實(shí)現(xiàn)方法
這篇文章主要介紹了pandas 缺失值與空值處理的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10入門tensorflow教程之TensorBoard可視化模型訓(xùn)練
在本篇文章中,主要介紹 了TensorBoard 的基礎(chǔ)知識,并了解如何可視化訓(xùn)練模型中的一些基本信息,希望對大家的TensorBoard可視化模型訓(xùn)練有所幫助2021-08-08selenium+超級鷹實(shí)現(xiàn)模擬登錄12306
這篇文章主要介紹了selenium+超級鷹實(shí)現(xiàn)模擬登錄12306,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01