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自动退出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值