1. 程式人生 > >python之路--實現登入三次後鎖定功能

python之路--實現登入三次後鎖定功能

0x00

上次面試時問我是否在學python,我以前也接觸過,但是到了字典那兒怎麼也明白不了,然後不了了之,也從網上學過爬蟲,還是記得一丁點東西的,嘻嘻

最近在跟著老男孩學習python,Alex講師說過一句話,人總是高看自己。這點我是比較認同的,總是覺得自學就可以學的好了,其實不然,要不然要老師幹什麼?

我是自學的,沒有錢也不可能報學習班,我也是簡單瞭解一下,別到時候什麼也不知道,不做小白,也不做大佬,慢慢學習,慢慢積累。

0x01

實現的功能是:
作業二:編寫登陸介面

輸入使用者名稱密碼
認證成功後顯示歡迎資訊
輸錯三次後鎖定

其中用到的知識點就是迴圈和檔案,以及sys.exit()的跳出,還有一些字串的語句

import os,sys  #匯入模組
count = 0     #計數,大於三次鎖定使用者名稱
while count < 3:
    username = input("username:")  #輸入使用者名稱
    file = open("suoding.txt",'r')  #以讀的方式開啟鎖定文件
    lines = file.readlines()   #以讀取行的方式讀取資料
    for i in lines:      #for迴圈,
        ceshi = username+"\n"  #因為他需要一個換行符一行一行的顯示,那時候我什麼也不知道,直接這樣加了 用strip()語句即可
if ceshi == i: print("使用者%s已經鎖定,請聯絡您的管理員" % username) file.close() #關閉檔案 sys.exit(1) f1 = open("ceshi.txt","r") user_list = f1.readlines() for user in user_list: (user,passwd) = user.strip('\n').split() #將使用者和密碼通過換行符截取出來
if username == user: p = 0 #定義密碼輸入的次數,大於三次直接鎖定使用者名稱 while p < 3: #下面就是一個迴圈,如果正確就登入,如果錯誤,提示剩餘的密碼輸入次數 password = input("password:") if password == passwd: print("歡迎%s登入系統" %username) sys.exit(0) else: if p!=2: print("對不起,%s的密碼錯誤,請重新輸入,你還有%d次機會" %(username,2-p)) p += 1 else: f.write("%s \n" %username) sys.exit("對不起,%s使用者已經鎖定,請聯絡管理員" %username) else: pass else: if count != 2: print('對不起,%s 輸入錯誤,請重新輸入,你還有 %d 次機會' %(username,2 - count)) count += 1 #計數遞增 else: sys.exit("輸入次數太多,程式自動退出,請重新執行") f.close() #關閉檔案

其中的一些難點就是擷取字元的語句,sys模組的使用方式,邏輯思維方式

寫程式時一定要寫一個邏輯圖,這樣就相當於打了一個框架,只要往裡面填東西就行了

就像html的div+css,打好框架,一步一步的寫內容,寫css,讓它有血有肉,成為優秀的前端

0x02

作業三:多級選單
三級選單
可依次選擇進入各子選單
所需新知識點:列表、字典

這個作業,先得寫一個三維陣列,山東省->德州市->德城區,山東省->濟南市->歷城區,山東省->德州市->慶雲縣等等

menu_dt = {“山東省{德州市[德城區],濟南市[歷城區],青島市[即墨縣],煙臺市[],濱州市[],棗莊市[]}”,“浙江省{}”,“重慶市{}”}
要注意,必須要英文狀態下的分號和引號才不報錯

然後一遍一遍的遍歷

其中就是在每一個選單欄下,輸入q都可直接退出,輸入其他命令返回上一選單

我到現在還沒有想法,根本不懂如何返回上一層

可以寫個函式,一直呼叫

看看大佬的文章

嗯,就這樣吧