1. 程式人生 > >python-使用者登入小程式

python-使用者登入小程式



雖然說是為了完成作業,不過以後估計會常來分享。首先說一下下邊這個程式的基本功能。畢竟是第一次寫python程式還是有點小激動和滿滿的成就感的,下邊這個程式:

1.輸入不存在的使用者,直接退出程式

2.嘗試密碼三次不對,退出and加入黑名單

3.下次在輸入已經加入黑名單的使用者名稱直接退出。

具體的內容就是上邊這個了。大神們估計會覺得簡單。而我寫了整整一天心塞塞。不過總歸寫出來了。下邊上程式碼。

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
#2016-12-08 frist homework
import getpass       #匯入密文密碼模組
user = {"
jingjing":"jingjing314","list":"list314","tvm":"tvmining"} #定義可登入的使用者和對應的密碼 f = open("user.txt") #開啟一個檔案 line = f.readline() #呼叫檔案的readline()方法 count = 0 #定義初始count值 while count < 3: name = input("please enter you username:") passwd = getpass.getpass("please enter you passwold:
") user.get(name,-1) #判斷使用者輸入的name是否在user這個dict中。後邊的-1,為自己定義的當這個name變數不存在的時候,返回型別值 if (user.get(name,-1)) == -1: #做判斷如果等於說明這個使用者不在使用者組裡面 print("error username") #直接退出程式 break while line: #這個就是相當於是寫死迴圈的感覺,當這個有值的時候。就是成立的 if name in line: #
如果這個使用者輸入的名字在白名單裡 print("{_name} is error".format(_name=name)) count +=3 #count值+3的目的是為了不讓繼續輸入了,相當於是預設你是攻擊者 line = f.readline() #在讀這個檔案 f.close() if count <3: #同理再看這裡,如果上邊不滿足while和上邊的if會執行這裡。 list = user[name] #list相當於是user的value,也就是密碼。 if passwd == list: # print("Wellcome here") break else: print("passwd is error,Please re-enter") count +=1 if count == 3: #迴圈三次相當於在count=3的時候 f = open("user.txt","a+") #開啟這個檔案a+相當於追加。w是覆蓋 f.writelines(name) #把使用者輸入的name放到這個檔案裡 f.writelines("\n") #為了讓每次都自動換行,在追加一個換行符 f.close() #為了確保每次檔案都自動關閉 else: break #這裡來了。這裡為什麼有break,是在第二層while中如果使用者名稱在白名單裡,要退出的。這裡就是為了退出第二曾迴圈,而第一層迴圈由於count大於3自動退出