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
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