python學習:
模擬用戶登陸
1、輸入帳號密碼進行登錄;
2、用戶信息保存著文件內(nèi);
3、用戶密碼輸入錯誤三次后鎖定;
第一次程序,問題比較多,畫蛇添足也比較多,寫的比較差,還請多多指教
代碼如下
Python Code
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 17/7/29 下午5:17
# @Author : Shope
# @Site :
# @File : file_opreation2.py
# @Software: PyCharm
users=[]
line1=[]
users1=[]
login=0
f = open("/users/shope/python/file.txt","r")
#txt文件包括信息
# shope 123456
# jack 654321
# alex 110032
# lilei 111111
for line in f:
users.append(line.split())
print(users)
#用戶注冊
new = raw_input("是否有帳號(Y\N):")
if new =="y" or new =="Y":
while login==0:
name = raw_input("請輸入注冊用戶名:")
for list in users: #檢索用戶是否存在
if name == str(list[0]):
print("用戶已存在!")
break
else:
login=1
break
password=raw_input("請輸入密碼:")
f = open("/users/shope/python/file.txt","a")
f.write("%s"%name)
f.write(" ")
f.write("%s\n"%password)
f.close()
else:
#
pass
# f = open("/users/shope/python/new_file.txt","r")
# for line in f:
# users.append(line.split())
# #調(diào)試使用
# #print(users)
# f.close()
#調(diào)試使用
f = open("/users/shope/python/file.txt","r")
for line in f:
users1.append(line.split())
for line1 in users1:
if line1 in users1:
break
else:
users.append(line.split())
print(users)
f.close()
i,j,m=0,0,0
falg=2 #flag標記最后輸出信息
user = raw_input("請輸入登陸用戶名:")
while i<3:
for list in users: #檢索用戶是否存在
#print(str(list[0]))
#print(str(list[-1])) #打印當前用戶信息,測試使用
if user == str(list[0]):
passwd = raw_input("請重新輸入用戶%s的密碼:"%user)
if passwd == list[-1]:
i=100
falg=1
break
else:
print("登陸密碼錯誤!")#密碼輸入錯誤,給用戶輸入機會
j=0 #重置輸入密碼次數(shù)
while j<2:
print("你還有%s機會輸入密碼:" % (2 - j))
passwd = raw_input("請重新輸入用戶%s的密碼:"%user)
if passwd ==list[-1]:
i=100
m=99
falg =1
break
else:
j+=1
falg=0
print("輸出密碼錯誤過多?。?)
break
pass
# else:
# print("用戶不存在!")
y = raw_input("是否需要換個用戶?(Y\N):") #用戶密碼輸入錯誤,詢問是否還要繼續(xù)嘗試輸入用戶密碼,這兒有bug沒有解決
if y== 'N' or y=='n':
m=100
break
elif y== 'Y' or y=='y':
pass
else:
m=100
break
#else:
#user = raw_input("please input your userid again:")
if m>1:
print("謝謝使用!")
i==100
else:
user = raw_input("你還有%s機會輸入用戶名:"%(2-i))
i+=1
#程序執(zhí)行完之后,根據(jù)flag值打印相關(guān)信息
if falg==1:
print("歡迎使用本測試軟件")
elif falg==0:
print("密碼錯誤過多!")
else :
print("用戶名及密碼不能匹配")
file.txt文件內(nèi)容:
shope 123456
jack 654321
alex 110032
lilei 111111
hanmeimei 11111111