作業:編寫登入介面
針對此例項書寫內容具體如下:
賬戶檔案account.txt內容如下:
tamir 123
test1 123
test2 123
test3 123
賬戶鎖定檔案account_lock.txt預設為空
針對賬號檔案(account.txt)裡的使用者進行判斷並鎖定,針對使用者和密碼各有三次錯誤重試機會。
1.流程圖如下:
**如下:
1#-*- coding:utf-8 -*-2#
author:steven kang34
import os,sys,getpass #
匯入os,sys,getpass 模組
5 u = 0 #
使用者的迴圈次數
6while u < 3:
7 username = input("
請輸入您的使用者名稱:
") #
使用input 讓使用者輸入並賦值給username變數
8 lock_file = open('
account_lock.txt
','r+
') #
開啟account_lock檔案,許可權是讀取更新,並賦值給lock_f變數
9 lock_list = lock_file.readlines() #
使用.readlines的方法逐行讀取account_lock檔案,並賦值給lock_list變數
1011
for lock_line in lock_list: #
使用for迴圈讀取account_lock的內容
12 lock_line = lock_line.strip('
\n') #
使用.strip()的方法去點換行符
13if username ==lock_line:
14print('
' % username) #
如果存在列印輸出
15 sys.exit(1) #
跳出迴圈
16 user_file = open('
account.txt
','r
') #
開啟account檔案,許可權是讀取更新,並賦值給user_f變數
17 user_list = user_file.readlines() #
使用.readlines的方法逐行讀取account檔案,並賦值給user_list變數
18for user_line in user_list: #
使用for迴圈讀取account的內容
19 (user,passwd) = user_line.strip('
\n').split() #
分別獲取賬號和密碼資訊
20if username == user: #
使用if判斷使用者輸入的使用者是否在normal_user中存在
21 p = 0 #
輸入密碼的迴圈次數
22while p < 3: #
只要使用者登入異常不超過3次就不斷迴圈
23 password = getpass.getpass('
請輸入您的密碼:
') #
使用getpass模組的.getpass方法讓使用者輸入密碼(輸入的時候不會顯示)
24if password == passwd: #
使用if判斷使用者輸入的密碼在normal_user中是否存在(相等)
25print('
歡迎 %s 登入系統
' %username) #
使用者名稱密碼全部相等(存在)列印歡迎登入資訊
26 sys.exit(0) #
跳出迴圈
27else:28
if p != 2:
29print('
對不起,%s 的密碼錯誤,請重新輸入,您還有 %d 次機會
'%(username,2 -p))
30 p += 1 #
密碼輸入錯誤後,迴圈值增加1
31else
:32 lock_file.write(username + '
\n') #
使用者名稱密碼輸入次數超過3次的使用者新增到account_lock檔案中33#
lock_f.write('%s \n' %username)
34 sys.exit('
'%username)
35else:36
pass
#當使用者沒匹配時,跳過並繼續迴圈
37else:38
if u != 2: #
i=2時,是最後一次機會,不用在提示還剩餘0次機會了
39print('
對不起,%s 輸入錯誤,請重新輸入,您還有 %d 次機會
' %(username, 2 -u))
40 u += 1 #
當使用者輸入錯誤時,迴圈值增加1
41else
:42 sys.exit('
因為您的錯誤輸入,程式已經退出,請重新執行
') #
使用者輸入三次錯誤後,異常退出
43 lock_f.close() #
關閉lock_f檔案
Python 學習第一天
今天在酷殼網上看了一篇很受啟發的文章 程式設計師技術練級攻略 介紹了乙個程式設計師從啟蒙入門,高階加深,到高階深入,所需要掌握的技術和應該看的書,從今天開始希望乙個星期能把python學會,當然肯定是皮毛了。python3.x之前學習的 學習python的 照著上面的例子敲了一下,發現第乙個就錯了,...
Python學習第一天
大綱 一,python版本的選擇 2.7.x和3.4.x 二,直譯器 編譯器 編輯器的介紹 三,環境變數配置 windows和linux 四,pycharm安裝及屬性配置 windows和linux 五,第乙個程式 hello,moocie!為什麼選擇python?python是一種物件導向 解釋型...
python的第一天
一般linux和mac電腦都有帶python,注意不要覆蓋以前的python版本,linux有的工具是python寫的,覆蓋了原來的可能導致系統出問題。1.cd到原始碼目錄 configure prefix usr local python27 把你要安裝的版本放在 usr local python...