欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python初學(xué)之用戶(hù)登錄的實(shí)現(xiàn)過(guò)程(實(shí)例講解)

 更新時(shí)間:2017年12月23日 20:48:44   作者:JayeHe  
下面小編就為大家分享一篇python初學(xué)之用戶(hù)登錄的實(shí)現(xiàn)過(guò)程(實(shí)例講解),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

要求編寫(xiě)登錄接口:

1. 輸入用戶(hù)名和密碼

2.認(rèn)證成功后顯示歡迎信息

3.用戶(hù)名輸錯(cuò),提示用戶(hù)不存在,重新輸入(5次錯(cuò)誤,提示嘗試次數(shù)過(guò)多,退出程序)

4.用戶(hù)名正確,密碼錯(cuò)誤,提示密碼錯(cuò)誤,重新輸入.(密碼錯(cuò)誤3次,鎖定用戶(hù)名并提示,退出程序)

readme

應(yīng)用知識(shí)點(diǎn):

一、文件的操作

基本操作

f = open('lyrics','r',) #打開(kāi)文件
first_line = f.readline()
print('first line:',first_line) #讀一行
data = f.read()# 讀取剩下的所有內(nèi)容,文件大時(shí)不要用
print(data) #打印文件
f.close() #關(guān)閉文件

打開(kāi)文件的模式有:

r,只讀模式(默認(rèn))。

w,只寫(xiě)模式?!静豢勺x;不存在則創(chuàng)建;存在則刪除內(nèi)容;】

a,追加模式?!究勺x;不存在則創(chuàng)建;存在則只追加內(nèi)容;】

with語(yǔ)句,同時(shí)打開(kāi)多個(gè)文件,還可以避免打開(kāi)文件后忘記關(guān)閉,語(yǔ)法:

with open('file1', 'r', encoding='utf-8') as f , \
open('file2', 'w', encoding='utf-8') as f_2 :
...

本例中有2個(gè)文件,一個(gè)存用戶(hù)名和密碼,另一個(gè)存黑名單.在讀取文件后怎樣轉(zhuǎn)變成python對(duì)象,然后對(duì)對(duì)象進(jìn)行操作,是我遇到的第一個(gè)難點(diǎn)!

然后查了下資料,發(fā)現(xiàn)字符串split方法,可以把字符串,從逗號(hào)分隔符的地方斷開(kāi),得到一個(gè)子字符串列表.這樣一來(lái),就可以對(duì)黑名單進(jìn)行查找等操作了.

...
user_lis_bak = f.readline().split(',')
...

Python 字典 setdefault() 函數(shù)和get()方法類(lèi)似, 如果鍵不已經(jīng)存在于字典中,將會(huì)添加鍵并將值設(shè)為默認(rèn)值。

dict.setdefault(key, default=None) 

二、列表和字典

列表是我們最以后最常用的數(shù)據(jù)類(lèi)型之一,通過(guò)列表可以對(duì)數(shù)據(jù)實(shí)現(xiàn)最方便的存儲(chǔ)、修改等操作

names = ['xiaoli',"xiaoming",'yuanlu'] 

通過(guò)下標(biāo)訪(fǎng)問(wèn)列表中的元素,下標(biāo)從0開(kāi)始計(jì)數(shù)

>>> names[0]
'xiaoli'
>>> names[1]
'xiaoming'
>>> names[-1]
'yuanlu'
>>> names[-2] #還可以倒著取
'xiaoming'

字典是一種key - value 的數(shù)據(jù)類(lèi)型,使用就像我們上學(xué)用的字典,通過(guò)筆劃、字母來(lái)查對(duì)應(yīng)頁(yè)的詳細(xì)內(nèi)容。

 info = {
   'xiaoli': "123456",
   'xiaoming': "111111",
   'yuanlu': "888888",
 }

這里key是用戶(hù)名,value是密碼,一一對(duì)應(yīng),key是唯一的.

三、for loop 和 if...else

for i in range(10): print(i) 

還是上面的程序,但是遇到大于5的循環(huán)次數(shù)就不走了,直接退出

 for i in range(10):
   if i>5:
     continue #不往下走了,直接進(jìn)入下一次loop
   print(i)

用戶(hù)名和密碼文件格式:

xiaoli 123456

xiaoming 888888

wangpeng 111111

luyuan 112222

qiling 556666

haiming 223333

黑名單文件格式:

xiaoli,xiaoming,wangpeng,

代碼

with open('user_lis', 'r', encoding='utf-8') as f_user_lis,\
     open('user_lis_bak', 'r', encoding='utf-8') as f_user_lis_bak: # 打開(kāi)文件'user_lis'和'user_lis_bak'
  user_lis_bak = f_user_lis_bak.read().split(',')   # 讀取f_user_lis_bak并轉(zhuǎn)成列表賦值給 user_lis_bak
  user_lis_dict = {}                 # 定義一個(gè)空字典
  for i in f_user_lis:
    user_lis_dict.setdefault(i.split()[0], i.split()[1])  # 讀取f_user_lis并把值放入字典user_lis_dict中
count = 0
for i in range(5):                 # 設(shè)置錯(cuò)誤次數(shù)上限為5次
  name = input('請(qǐng)輸入用戶(hù)名>>')
  password = input('請(qǐng)輸入密碼>>')
  if name in user_lis_bak:            # 第一步先查找黑名單
    print('用戶(hù)名已被鎖定,請(qǐng)聯(lián)系管理員!!!')
    continue                  # 在黑名單中直接進(jìn)入下一次循環(huán),重新輸入用戶(hù)名和密碼
  elif name in user_lis_dict:           # 第二步查找用戶(hù)白名單
    if password == user_lis_dict.get(name):   # 密碼正確,驗(yàn)證通過(guò) 退出
      print('親愛(ài)的會(huì)員', name, '歡迎回來(lái)')
      break
    else:                   # 密碼錯(cuò)誤,提示錯(cuò)誤
      if count == 2:
        name_bak_write = open('user_lis_bak', 'a', encoding='utf-8')
        name_bak_write.write(name+',')
        name_bak_write.close()       # 3次密碼錯(cuò)誤,就把用戶(hù)名寫(xiě)進(jìn)黑名單
        print('用戶(hù)名已鎖定,請(qǐng)聯(lián)系管理員!!!')
        break
      print('密碼錯(cuò)誤!!!')
      count += 1               # 密碼錯(cuò)一次,count就+1
  else:
    if i == 4:                 # 用戶(hù)名錯(cuò)5次,直接退出
      print('嘗試次數(shù)過(guò)多,再見(jiàn)!!!')
      continue
    print('用戶(hù)名不存在!!!')          # 用戶(hù)名錯(cuò)誤,提示錯(cuò)誤

以上這篇python初學(xué)之用戶(hù)登錄的實(shí)現(xiàn)過(guò)程(實(shí)例講解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用Python批量生成任意尺寸的圖片

    利用Python批量生成任意尺寸的圖片

    不知道大家有沒(méi)有遇到過(guò),因檢驗(yàn)需要1000張,分別從1*1到1000*1000像素的圖片。搜索一番過(guò)后發(fā)現(xiàn)還是Python實(shí)現(xiàn)比較方便,遂決定用Python實(shí)現(xiàn)這一功能,下面分享給大家,有需要的可以參考。
    2016-08-08
  • python3之微信文章爬蟲(chóng)實(shí)例講解

    python3之微信文章爬蟲(chóng)實(shí)例講解

    下面小編就為大家?guī)?lái)一篇python3之微信文章爬蟲(chóng)實(shí)例講解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • 使用Python編寫(xiě)自己的微型Redis

    使用Python編寫(xiě)自己的微型Redis

    這篇文章主要為大家詳細(xì)介紹了使用Python編寫(xiě)自己的微型Redis的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2024-03-03
  • Python??Pandas教程之使用?pandas.read_csv()?讀取?csv

    Python??Pandas教程之使用?pandas.read_csv()?讀取?csv

    這篇文章主要介紹了Python Pandas教程之使用pandas.read_csv()讀取csv,文章通過(guò)圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Python讀取配置文件(config.ini)以及寫(xiě)入配置文件

    Python讀取配置文件(config.ini)以及寫(xiě)入配置文件

    這篇文章主要介紹了Python讀取配置文件(config.ini)以及寫(xiě)入配置文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • 簡(jiǎn)單了解Java Netty Reactor三種線(xiàn)程模型

    簡(jiǎn)單了解Java Netty Reactor三種線(xiàn)程模型

    這篇文章主要介紹了簡(jiǎn)單了解Java Netty Reactor三種線(xiàn)程模型,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 使用Pygame制作中秋嫦娥奔月小游戲

    使用Pygame制作中秋嫦娥奔月小游戲

    中秋節(jié)是中國(guó)傳統(tǒng)的重要節(jié)日之一,起源于嫦娥奔月的神話(huà)故事,在中秋節(jié)這個(gè)特殊的日子里,人們不僅會(huì)欣賞明亮的月亮和嫦娥奔月的美麗故事,還會(huì)舉行一些慶?;顒?dòng),接下來(lái),我們使用Pygame制作“嫦娥奔月”小游戲,感興趣的朋友可以自己動(dòng)手試一試
    2023-09-09
  • Python實(shí)現(xiàn)測(cè)試磁盤(pán)性能的方法

    Python實(shí)現(xiàn)測(cè)試磁盤(pán)性能的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)測(cè)試磁盤(pán)性能的方法,涉及Python對(duì)硬件的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Python 制作查詢(xún)商品歷史價(jià)格的小工具

    Python 制作查詢(xún)商品歷史價(jià)格的小工具

    這篇文章主要介紹了Python 如何制作查詢(xún)商品歷史價(jià)格的小工具,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-10-10
  • django的ORM操作 刪除和編輯實(shí)現(xiàn)詳解

    django的ORM操作 刪除和編輯實(shí)現(xiàn)詳解

    這篇文章主要介紹了django的ORM操作 刪除和編輯實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評(píng)論