python作业二之登录验证

1.假设一年期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带利能翻番
money = 10000#钱
interest = 0.0325#利率
count = 0#次数
while money < 20000:
    count+=1
    money+=money*interest
    print("money",count,money)

  运行结果:

money 1 10325.0
money 2 10660.5625
money 3 11007.03078125
money 4 11364.759281640625
money 5 11734.113958293945
money 6 12115.472661938498
money 7 12509.2255234515
money 8 12915.775352963674
money 9 13335.538051934993
money 10 13768.94303862288
money 11 14216.433687378123
money 12 14678.467782217913
money 13 15155.517985139995
money 14 15648.072319657045
money 15 16156.6346700459
money 16 16681.72529682239
money 17 17223.88136896912
money 18 17783.657513460617
money 19 18361.626382648086
money 20 18958.37924008415
money 21 19574.526565386885
money 22 20210.698678761957

Process finished with exit code 0
View Code
2.基础需求:
让用户输入用户名密码
认证成功后显示欢迎信息
输错三次后退出程序

升级需求:
可以支持多个用户登录 (提示,通过列表存多个账户信息)
用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
user =[["alex",'123'],["qian",'456']]
count = 0
pass_auth_flag = False #标志位
first_input_user = None#记住第一次用户名
is_same_user = True#用于判断三次输入的用户名是否相等


#从文件
f = open("lock_file","r")
lockd_users = []
for line in  f:
    lockd_users.append(line.strip())
#print("lockd user:",lockd_users)
while count<3:
    username = input("username:").strip()
    password = input("password:").strip()
    if username in lockd_users:
        exit("用户已锁定")

    if not first_input_user:#如果没值,代表第一次
        first_input_user = username
    if username != first_input_user:
        is_same_user = False #多次输入就不是同一个用户名了
    for _user  in user:
        if _user[0] == username and _user[1] == password:
            print("登录成功![%s]欢迎进入"%username)
            pass_auth_flag = True#认证成功
            break
            #exit()
    else:
        print("用户名或密码错误!")
    if pass_auth_flag is True:
        break
    count+=1
else:
    print("输入次数过多")
    if is_same_user is True:
        f = open("lock_file","a")
        f.write(username+"\n")
        f.close()
        print("此用户已经锁定!",username)

 运行结果·:

username:alex
password:111111
用户名或密码错误!
username:alex
password:111111
用户名或密码错误!
username:alex
password:111111
用户名或密码错误!
输入次数过多
此用户已经锁定! alex

Process finished with exit code 0
View Code

posted @ 2018-04-04 23:23  等待の喵  阅读(450)  评论(0编辑  收藏  举报