最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)注冊(cè)登錄功能

 更新時(shí)間:2022年02月08日 12:07:28   作者:程序改變世界~  
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)注冊(cè)登錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

用Python寫(xiě)個(gè)注冊(cè)登錄功能,供大家參考,具體內(nèi)容如下

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

首先第1步就是導(dǎo)入這2個(gè)模塊,即

import time
import re

之后需要1個(gè)列表用于存儲(chǔ)注冊(cè)的id,需要一個(gè)字典,來(lái)將ID與密碼綁定在一起,因?yàn)樽值涫莐ey:value格式,以ID作為key,密碼(password)作為value,就實(shí)現(xiàn)了綁定

代碼可表示為

user_id=[] #存儲(chǔ)用戶(hù)id
user_dict={} #將id與密碼綁定

之后就要詢(xún)問(wèn)用戶(hù)是否注冊(cè)過(guò)賬號(hào),如果沒(méi)注冊(cè),就提示用戶(hù)注冊(cè)賬號(hào),可以通過(guò)一個(gè)變量接收用戶(hù)的選擇,然后進(jìn)行對(duì)應(yīng)的操作

choice=input('您是否注冊(cè)過(guò)賬號(hào) 沒(méi)有請(qǐng)注冊(cè) 1:注冊(cè) 2:登錄 3:退出系統(tǒng)')

輸入1,就進(jìn)入到注冊(cè)界面,注冊(cè)首先需要輸入用戶(hù)名,輸入密碼,最后提示用戶(hù)注冊(cè)成功
然后需要將用戶(hù)的id加入到user_id中,用字典存儲(chǔ)用戶(hù)的id和密碼,即

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

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

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

值得注意的是,一定要先判斷id是否存在,而不是直接判斷密碼,因?yàn)闆](méi)注冊(cè)的id在字典中沒(méi)有對(duì)應(yīng)的鍵,會(huì)報(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)目的源代碼:
上面沒(méi)有講正則表達(dá)式,源代碼中帶有正則表達(dá)式判斷是否含有字母

import time
print('----------感謝您使用本系統(tǒng)------------')
user_id=[]
user_dict={}
time.sleep(1)
while 1:
? ? choice=input('您是否注冊(cè)過(guò)賬號(hào) 沒(méi)有請(qǐng)注冊(cè) 1:注冊(cè) 2:登錄 3:退出系統(tǒng)')
? ? if choice=='1':
? ? ? ? user_name=input('請(qǐng)輸入用戶(hù)名')
? ? ? ? while 1:
? ? ? ? ?? ?password=input('請(qǐng)輸入密碼 需要包含字母')
? ? ? ? ?? ?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('請(qǐng)輸入用戶(hù)名')
? ? ? ? ? ? key=input('請(qǐng)輸入密碼')
? ? ? ? ? ? if name in user_id:
? ? ? ? ? ? ? ? if user_dict[name]==key:
? ? ? ? ? ? ? ? ? ? print('登錄成功')
? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? print('密碼錯(cuò)誤 請(qǐng)檢查好輸入')
? ? ? ? ? ? ? ? ? ? q=input('您是否選擇更改密碼 輸入y更改 輸入其他退出')
? ? ? ? ? ? ? ? ? ? if q=='y':
? ? ? ? ? ? ? ? ? ? ?? ?while 1:
? ? ? ? ? ? ? ? ? ? ? ? ?? ?new_password1=input('請(qǐng)輸入新密碼')
? ? ? ? ? ? ? ? ? ? ? ? ?? ?new_password2=input('請(qǐng)確認(rèn)新密碼')
? ? ? ? ? ? ? ? ? ? ? ? ?? ?if new_password_1==new_password2:
? ? ? ? ? ? ? ? ? ? ? ? ?? ??? ?user_dict[name]=new_password1
? ? ? ? ? ? ? ? ? ? ? ? ?? ??? ?break
? ? ? ? ? ? ? ? ? ? ? ? ?? ?else:
? ? ? ? ? ? ? ? ? ? ? ? ?? ??? ?print('兩次密碼輸入不一致,請(qǐng)重新輸入')
? ? ? ? ? ? ? ? ? ? ? ? print('密碼修改成功!')
? ? ? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? print('用戶(hù)名不存在 請(qǐng)檢查好輸入')
? ? ? ? ? ? ? ? r=input('您是否需要注冊(cè)賬號(hào) 輸入1注冊(cè) 其他退出')
? ? ? ? ? ? ? ? if r=='1':
? ? ? ? ? ? ? ? ? ? user_login=input('請(qǐng)輸入要注冊(cè)的用戶(hù)名')
? ? ? ? ? ? ? ? ? ? password_login=input('請(qǐng)輸入您的登錄密碼')
? ? ? ? ? ? ? ? ? ? user_id.append(user_login)
? ? ? ? ? ? ? ? ? ? for num in user_id:
? ? ? ? ? ? ? ? ? ? ? ? if num not in user_dict:
? ? ? ? ? ? ? ? ? ? ? ? ? ? user_dict[user_login]=password_login
? ? ? ? ? ? ? ? ? ? print('注冊(cè)成功')
? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? ? ? ? ??
? ? else:
? ? ? ? print('感謝您的使用,程序?qū)⒃?秒后退出')
? ? ? ? for i in range(1,5):
? ? ? ? ? ? time.sleep(1)
? ? ? ? ? ? print('程序?qū)⒃趝}秒后退出'.format(5-i))
? ? ? ? break

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python檢測(cè)某個(gè)變量是否有定義的方法

    python檢測(cè)某個(gè)變量是否有定義的方法

    這篇文章主要介紹了python檢測(cè)某個(gè)變量是否有定義的方法,實(shí)例分析了Python常用的變量判定技巧,需要的朋友可以參考下
    2015-05-05
  • 一篇文章帶你了解Python的進(jìn)程,線(xiàn)程和協(xié)程

    一篇文章帶你了解Python的進(jìn)程,線(xiàn)程和協(xié)程

    這篇文章主要為大家介紹了Python的進(jìn)程,線(xiàn)程和協(xié)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • 在PyCharm中實(shí)現(xiàn)添加快捷模塊

    在PyCharm中實(shí)現(xiàn)添加快捷模塊

    今天小編就為大家分享一篇在PyCharm中實(shí)現(xiàn)添加快捷模塊,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • Django JSONField的自動(dòng)轉(zhuǎn)換思路詳解(django自定義模型字段)

    Django JSONField的自動(dòng)轉(zhuǎn)換思路詳解(django自定義模型字段)

    如果想實(shí)現(xiàn)JSONField的自動(dòng)轉(zhuǎn)換,可以使用Django REST framework的JSONField,或者自定義一個(gè)字段類(lèi)并覆蓋from_db_value()和get_prep_value()方法來(lái)實(shí)現(xiàn)這個(gè)功能,這篇文章主要介紹了Django JSONField的自動(dòng)轉(zhuǎn)換(django自定義模型字段)問(wèn)題,需要的朋友可以參考下
    2023-06-06
  • OpenCV中圖像與視頻的基礎(chǔ)操作總結(jié)

    OpenCV中圖像與視頻的基礎(chǔ)操作總結(jié)

    在計(jì)算機(jī)視覺(jué)領(lǐng)域,OpenCV是一款廣泛使用的開(kāi)源庫(kù),本文為大家介紹了如何使用OpenCV進(jìn)行這些操作,希望能幫助你更好地掌握?qǐng)D像處理和視覺(jué)任務(wù)的開(kāi)發(fā)技巧
    2023-06-06
  • 基于BCEWithLogitsLoss樣本不均衡的處理方案

    基于BCEWithLogitsLoss樣本不均衡的處理方案

    這篇文章主要介紹了BCEWithLogitsLoss樣本不均衡的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python中文件操作與異常的處理圖文詳解

    python中文件操作與異常的處理圖文詳解

    在實(shí)際開(kāi)發(fā)中常常需要對(duì)程序中的數(shù)據(jù)進(jìn)行持久化操作,而實(shí)現(xiàn)數(shù)據(jù)持久化最直接簡(jiǎn)單的方式就是將數(shù)據(jù)保存到文件中,下面這篇文章主要給大家介紹了關(guān)于python中文件操作與異常處理的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • python?配置uwsgi?啟動(dòng)Django框架的詳細(xì)教程

    python?配置uwsgi?啟動(dòng)Django框架的詳細(xì)教程

    這篇文章主要介紹了python?配置uwsgi?啟動(dòng)Django框架,本文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • python內(nèi)存管理機(jī)制原理詳解

    python內(nèi)存管理機(jī)制原理詳解

    這篇文章主要介紹了python內(nèi)存管理機(jī)制原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python中time tzset()函數(shù)實(shí)例用法

    python中time tzset()函數(shù)實(shí)例用法

    在本篇文章里小編給大家整理的是一篇關(guān)于python中time tzset()函數(shù)實(shí)例用法內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-02-02

最新評(píng)論

余干县| 尚志市| 尤溪县| 太谷县| 沙洋县| 黎平县| 满城县| 蕉岭县| 炎陵县| 百色市| 东乌| 东台市| 石棉县| 鄄城县| 阳山县| 琼海市| 中方县| 连江县| 嵊泗县| 临漳县| 综艺| 崇礼县| 涿州市| 资中县| 望谟县| 茂名市| 齐齐哈尔市| 富阳市| 安国市| 年辖:市辖区| 平泉县| 崇州市| 衡阳市| 鹿泉市| 华亭县| 潼南县| 时尚| 上杭县| 库尔勒市| 东台市| 安多县|