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

python從入門到精通(DAY 3)

 更新時(shí)間:2015年12月20日 10:51:10   投稿:hebedich  
本文是python從入門到精通系列文章的第三篇,主要是給大家講訴做的一個(gè)編寫登陸接口練習(xí)程序的全過程,非常的細(xì)致,有需要的小伙伴可以參考下。

要求:編寫登陸接口

輸入用戶名密碼
認(rèn)證成功后顯示歡迎信息
輸錯(cuò)三次后鎖定

針對此實(shí)例寫了有二種類型的腳本,略有不同,具體如下:

帳號文件account.txt內(nèi)容如下:

sam 123

david 12
kevin 123
lin 12
tailen 123
jack 12

鎖文件account_lock.txt默認(rèn)為空

一、只針對帳號文件里的用戶進(jìn)行判斷并鎖定,針對用戶和密碼各有三次錯(cuò)誤重試機(jī)會。

1、流程圖如下:

代碼如下:

#!/usr/bin/python27
#_*_ coding:utf-8 _*_

import sys,os,getpass

os.system('clear')
i = 0
while i < 3:                            #只要用戶登錄異常不超過3次就不斷循環(huán)
  name = raw_input("請輸入用戶名:")

  lock_file = open('account_lock.txt','r+')            #當(dāng)用戶輸入用戶名后,打開LOCK 文件 以檢查是否此用戶已經(jīng)LOCK了
  lock_list = lock_file.readlines()

  for lock_line in lock_list:                   #循環(huán)LOCK文件 
    lock_line = lock_line.strip('\n')              #去掉換行符
    if name == lock_line:                    #如果LOCK了就直接退出
      sys.exit('用戶 %s 已經(jīng)被鎖定,退出' % name) 

  user_file = open('account.txt','r')               #打開帳號文件 
  user_list = user_file.readlines()                
  for user_line in user_list:                   #對帳號文件進(jìn)行遍歷
    (user,password) = user_line.strip('\n').split()       #分別獲取帳號和密碼信息
    if name == user:                      #如用戶名正常匹配
      j = 0
      while j < 3:                      #只要用戶密碼異常不超過3次就不斷循環(huán)
        passwd = getpass.getpass('請輸入密碼:')       #輸入隱藏密碼
        if passwd == password:               #密碼正確,提示歡迎登錄
          print('歡迎登錄管理平臺,用戶%s' % name)    
          sys.exit(0)                   #正常退出
        else:
          print('用戶 %s 密碼錯(cuò)誤,請重新輸入,還有 %d 次機(jī)會' % (name,2 - j))
        j += 1                       #密碼輸入錯(cuò)誤后,循環(huán)值增加1
      else:
        lock_file.write(name + '\n')            #密碼輸入三次錯(cuò)誤后,將該用戶追加到LOCK文件
        sys.exit('用戶 %s 達(dá)到最大登錄次數(shù),將被鎖定并退出' % name)
    else:
      pass                          #當(dāng)用戶沒匹配時(shí),跳過并繼續(xù)循環(huán)
  else:
    print('用戶 %s 不存在,請重新輸入,還有 %d 次機(jī)會' % (name,2 - i))
  i += 1                             #當(dāng)用戶輸入錯(cuò)誤時(shí),循環(huán)值增加1
else:
  sys.exit('用戶 %s 不存在,退出' % name)              #用戶輸入三次錯(cuò)誤后,異常退出
      
lock_file.close()                          #關(guān)閉LOCK文件
user_file.close()                          #關(guān)閉帳號文件

二、針對帳號文件里的不存在的用戶也可以進(jìn)行判斷并鎖定,針對用戶和密碼共有三次錯(cuò)誤重試機(jī)會

代碼如下:

#_*_ coding:utf-8 _*_

import sys,os,getpass

os.system('clear')

retry_limit = 3
retry_count = 0

account_file = 'account.txt'
lock_file = 'account_lock.txt'

while retry_count < retry_limit:                     #只要重試不超過3次就不斷循環(huán)
  username = raw_input('\033[31;43mUsername:\033[0m')
  username = username.strip()
  lock_check = open(lock_file)                     #當(dāng)用戶輸入用戶名后,打開LOCK 文件 以檢查是否此用戶已經(jīng)LOCK了

  for line in lock_check.readlines():                 #循環(huán)LOCK文件 
    if username == line.strip('\n'):                 #去掉換行符
      sys.exit('\033[35mUser %s is locked!!!\033[0m' % username)  #如果LOCK了就直接退出
  password = raw_input('\033[32;41mPassword:\033[0m')         #輸入密碼

  f = open(account_file,'r')                      #打開帳號文件 
  match_flag = False                          # 默認(rèn)為Flase,如果用戶match 上了,就設(shè)置為 True

  for line in f.readlines():                      
    user,passwd = line.strip('\n').split()              #去掉每行多余的\n并把這一行按空格分成兩列,分別賦值為user,passwd兩個(gè)變量
    if username == user and password == passwd:           #判斷用戶名和密碼是否都相等
      print('hello, %s !!' % username)
      match_flag = True                       #相等就把循環(huán)外的match_flag變量改為了True
      break                             #然后就不用繼續(xù)循環(huán)了,直接 跳出,因?yàn)橐呀?jīng)match上了
  f.close()

  if match_flag == False:                       #如果match_flag還為False,代表上面的循環(huán)中跟本就沒有match上用戶名和密碼,所以需要繼續(xù)循環(huán)
    print('sorry,%s is unmatched' % username)
    retry_count += 1                         #計(jì)數(shù)器加1
  else:
    print('wlecome login my learning system!')
    break                              #用戶成功登錄,退出腳本

else:
  print("you account %s is locked!!!" % username)
  g = open(lock_file,'a')
  g.write(username)                          #被鎖用戶追加到用戶鎖文件
  g.write('\n')  
  g.close()

相關(guān)文章

  • pytorch dataloader 取batch_size時(shí)候出現(xiàn)bug的解決方式

    pytorch dataloader 取batch_size時(shí)候出現(xiàn)bug的解決方式

    今天小編就為大家分享一篇pytorch dataloader 取batch_size時(shí)候出現(xiàn)bug的解決方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 利用Python爬取微博數(shù)據(jù)生成詞云圖片實(shí)例代碼

    利用Python爬取微博數(shù)據(jù)生成詞云圖片實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于利用Python爬取微博數(shù)據(jù)生成詞云圖片的相關(guān)資料,文中通過示例代碼介紹非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • Py之pycocotools庫的簡介、安裝、使用方法及說明

    Py之pycocotools庫的簡介、安裝、使用方法及說明

    這篇文章主要介紹了Py之pycocotools庫的簡介、安裝、使用方法及說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 在主機(jī)商的共享服務(wù)器上部署Django站點(diǎn)的方法

    在主機(jī)商的共享服務(wù)器上部署Django站點(diǎn)的方法

    這篇文章主要介紹了在主機(jī)商的共享服務(wù)器上部署Django站點(diǎn)的方法,Django是最具人氣的Python框架,需要的朋友可以參考下
    2015-07-07
  • python Matplotlib畫圖之調(diào)整字體大小的示例

    python Matplotlib畫圖之調(diào)整字體大小的示例

    本篇文章主要介紹了python Matplotlib畫圖之調(diào)整字體大小的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • 使用PDB簡單調(diào)試Python程序簡明指南

    使用PDB簡單調(diào)試Python程序簡明指南

    這篇文章主要介紹了使用PDB簡單調(diào)試Python程序簡明指南,本文講解了使用PDB調(diào)試程序的簡單技巧,方便、簡潔實(shí)用,需要的朋友可以參考下
    2015-04-04
  • 如何使用Typora+MinIO+Python代碼打造舒適協(xié)作環(huán)境

    如何使用Typora+MinIO+Python代碼打造舒適協(xié)作環(huán)境

    這篇文章主要介紹了如何使用Typora+MinIO+Python代碼打造舒適協(xié)作環(huán)境,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Python使用kombu連接信息中包含#號問題排查方式

    Python使用kombu連接信息中包含#號問題排查方式

    文章描述了在部署Python項(xiàng)目到生產(chǎn)環(huán)境時(shí)遇到的一個(gè)錯(cuò)誤,即端口號無法正確轉(zhuǎn)換為整數(shù)值,該錯(cuò)誤在測試環(huán)境和本地調(diào)試中沒有出現(xiàn),但在生產(chǎn)環(huán)境中才出現(xiàn),通過分析錯(cuò)誤信息和代碼,作者發(fā)現(xiàn)問題出在URL解析過程中,特別是在處理包含特殊字符(如#號)的URL時(shí)
    2024-12-12
  • 淺談Django REST Framework限速

    淺談Django REST Framework限速

    這篇文章主要介紹了淺談Django REST Framework限速,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • 一文讓你秒懂精通pip并快速體驗(yàn)深度學(xué)習(xí)應(yīng)用【建議收藏】

    一文讓你秒懂精通pip并快速體驗(yàn)深度學(xué)習(xí)應(yīng)用【建議收藏】

    在使用python的時(shí)候,經(jīng)常使用到pip這個(gè)工具,可以很方便的線上安裝依賴庫,當(dāng)然pip還有很多參數(shù)都可以幫我們?nèi)ゲ樵円恍煨畔?這篇文章主要給大家介紹了如何通過一篇文章讓你秒懂精通pip并快速體驗(yàn)深度學(xué)習(xí)應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2021-08-08

最新評論

黔西县| 白沙| 准格尔旗| 镇江市| 义乌市| 资阳市| 霸州市| 济阳县| 汽车| 扎兰屯市| 合山市| 遵义市| 林芝县| 米脂县| 行唐县| 兴隆县| 台中县| 东乌| 正镶白旗| 万安县| 招远市| 宜黄县| 万宁市| 义乌市| 贡嘎县| 延安市| 宜黄县| 金秀| 纳雍县| 枞阳县| 皮山县| 昭通市| 同江市| 临桂县| 苗栗县| 阜南县| 南溪县| 如东县| 左贡县| 综艺| 柳河县|