python自学之路:模拟用户登陆

python学习:
模拟用户登陆
1、输入帐号密码进行登录;
2、用户信息保存着文件内;
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())
# #调试使用
# #print(users)
# f.close()
#调试使用
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 #重置输入密码次数
                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):") #用户密码输入错误,询问是否还要继续尝试输入用户密码,这儿有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
#程序执行完之后,根据flag值打印相关信息
if falg==1:
    print("欢迎使用本测试软件")
elif falg==0:
    print("密码错误过多!")
else :
    print("用户名及密码不能匹配")

file.txt文件内容:

shope 123456
jack 654321
alex 110032
lilei 111111
hanmeimei 11111111

FYI

Thank you for your support and reading

你可能感兴趣的:(python自学之路:模拟用户登陆)