day1 login

使用流程:

1.程序启动后,显示欢迎信息,提示用户输入用户名;

2.判断用户是否存在,不存在则提示重新输入,或者关闭程序;客户存在则提示客户输入密码;

3.判断密码是否正确,如果不正确则提示用户重新输入,输入第三次依然错误,则锁定该账户;

4.密码输入正确时,后台进程判断用户是否被禁用,“禁用”时提示用户联系管理员;没有禁用则显示登录成功欢迎信息。

系统设计:

(循环登录次数增加,来禁用账户,试了 n 次,还在研究;初步实现用两个文件来实现用户验证)

1.本程序运行需要依赖两个基础文件;user_list:保存用户名以及密码 ;black_list:黑名单;

2.程序运行开始后,先读取两个文件的内容,按行依次循环遍历整个文件;

3.待用户输入用户名后验证用户是否存在;存在则提示输入密码,再校验密码;密码正确,开始校验用户是否在黑名单,如果在。则提示用户联系管理员;不存在,则登录成功。

4.密码输入错误,则循环,第三次还错误,将该用户加入黑名单。

login_user = input(‘请输入您的账号:‘)
black_list = open(‘/Users/kamil/PycharmProjects/s20160115_1/day1/homework/blacklist‘,‘r+‘)
#可写方式打开黑名单
lock_list = black_list.readlines()
#读取整个文件
for lock_user in lock_list:
    #读取整个文件的 user 列表
    lock = lock_user.split()
    #去除空行影响
user_file = open(‘/Users/kamil/PycharmProjects/s20160115_1/day1/homework/name.txt‘,‘r+‘)
#可读方式打开user
user_list = user_file.readlines()
for user_info in user_list:
    user = user_info.split()
#    print(user)
    if login_user == user[0]:
        count = 3
        #设置一个可循环次数
        while count > 0 :
            #保证 count>0
            login_passwd = input(‘请输入您的密码:‘)
            if login_passwd in user[1]:
                #如果密码正确开始判断用户是否被锁定
                if login_user == lock[0]:
                    print(‘账号之前被锁定,请联系管理员‘)
                    #用户在黑名单
                    exit()
                else:
                    print(‘登录成功‘)
                    #不在黑名单
                exit()
            else:
                count = count - 1
                print(‘密码输入错误,您还有%d次机会‘%(count))
                #提示剩余的次数
        else:

             black_list.write(login_user + ‘\n‘)
             #把被锁定的账号写入到文件中换行保存
             exit(‘账号已被锁定,下次禁止登录‘)
else:
    print(‘账号不存在‘)
    exit()
user_file.close()
lock_file.close()
#关闭文件
黑名单:
liukun
jim

user_list

jim 123ewq
lucy 321
liukun 3
时间: 2024-08-06 23:54:56

day1 login的相关文章

day1作业--登录入口

作业概述: 编写一个登录入口,实现如下功能: (1)输入用户名和密码 (2)认证成功后显示欢迎信息 (3)输错三次后锁定 流程图: readme: 1.程序配置文件: 黑名单文件blacklist.txt(可以存在,可以不存在) 白名单文件whitelist.txt存在,内容如下: zhangsan,1234 wang,1234 ding,1234 2.输入密码的时候不显示 代码: 1 #coding=utf-8 2 import os 3 import getpass 4 5 BlackLis

Python login Day1

跟着大王学Python,相信会越来越好的 1:用户登录系统 环境Python3 lock.txt为账户锁定文件输入用户名(随意),如果用户在lock文件内,提示账户被锁定,并退出如果密码符合则进入系统如果三次登录失败,退出并把失败尝试登录的用户追加到lock内,并退出 密码:“123” #!/usr/bin/env python #-*- coding:utf-8 -*- #author:lihonging #function:user login, three faile be locked

s14 python3 day1 作业2

需求: 模拟验证用户输入密码登录.要求有3次机会,如果用户只输错密码,则三次后锁定,下次再登陆则提示账号锁定. 如果用户名密码正确,则提示登陆成功. 做作业: 使用两个文本文件来分别存放用户信息和锁定信息 用户和密码列表 [[email protected] day1]# cat user_list.txt liuxiaolu 123456liuxiaogou 888888liuxiaomao 654321 黑名单列表 [[email protected] day1]# cat user_loc

Day1 Python笔记

Day1 变量与赋值 name = 'Kevin':变量赋值时如果是str类型需要用''引起来 age = 21:如果是int则不需要'' 变量与起名 通俗易懂:最好能做到见名知意 nums_of_kevin_gf = 10 NumsOfKevinGf = 20:驼峰法 name-of-kevin-gf = 10:不规范命名方法,会触发语法错误,python会把'-'解释为'相减' 5name = 2:数字不能开头,na4me(可以使用) !name = 4:特殊字符不能有如[email pro

python运维开发实践--Day1

一.脚本功能 登录接口 -输入用户名.密码 -用户名.密码为空,提示 -输错三次锁定 -认证成功后,显示欢迎登录信息 二.流程图 三.python代码 [[email protected] Day1]# cat login.py #!/usr/bin/env python import sys username = 'hanyun' password = 'hanyun123' retry_count = 0 while True: user = raw_input('Username:').s

linux 本地账号密码无法登陆,一直返回 登陆的login界面

登陆redhat一直是返回login,账号和密码没错 通过ssh crt类的软件远程连接系统 然后更改文件   vi /etc/pam.d/login 把 :session required /lib/security/pam_limits.so 更改为:session required /lib64/security/pam_limits.so wq保存

摆脱Login控件,自己定义登录操作

protected void ImageButton1_Click(object sender, ImageClickEventArgs e) { //在登录过程中,程序自动使用login.aspx进行拦截 //验证用户通过后,自动返回拦截的位置 if (Membership.ValidateUser(this.TextBox1.Text, this.TextBox2.Text)) { this.Session["xh"] = this.TextBox1.Text; FormsAuth

学习Python的day1

自己以前从来没有写博客的想法,但是学Python,里面的老师也说了,写博客可以加深自己的记忆,也能回顾内容.还能给别人参考.挺值的.2017-09-16 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOBE排行榜,Python赶超PHP占据第五, Python崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. Py

/etc/login.defs 的说明

/etc/login.defs 配合/etc/passwd和/etc/shadow来对用户进行一些限制  但是优先级低于/etc/passwd和/etc/shadow. 如果有冲突的地方,系统会以/etc/passwd和/etc/shadow为准. 这个文件的内容如下 [[email protected] ~]# egrep -v '^[ ]*$|^#' /etc/login.defs      过滤/etc/login.defs中的空行/只有空格的行/被注释的行 MAIL_DIR    /va