用户登录,三级菜单
用户登录
详细要求:
1/输入用户名密码
2/认证成功后显示欢迎信息
3/输出三次后锁定
输入的用户名/密码是在存在密码本里的。
密码输错三次之后,将该用户锁定,下次登陆后任然生效。
(要创建密码本和锁定用户的菜单)
先画个思维导图:
流程控制代码
# -*- coding:utf-8 -*- #!/usr/bin/env python # Author:suchagal import xlrd import sys users_list = [] password_list = [] users_get_out_of_line = [] f = xlrd.open_workbook('users_password.xlsx') table = f.sheet_by_name(u'Sheet1') for i in range(table.nrows): users_list.append(table.col(0)[i].value) password_list.append(table.col(1)[i].value) print(users_list,password_list) f1 = open('users_get_out_of_line.txt','r') line = f1.readline() users_get_out_of_line = line.split() print(users_get_out_of_line) while True: count = 0 _user = input("username:") if _user in users_get_out_of_line: print("user locked") elif _user in users_list: _password = input("password:") if _password == password_list[users_list.index(_user)]: print("welcome %s login..."% _user) else: print("password is error") while count < 2: count+=1 _password_ = input("password again:") if _password_ == password_list[users_list.index(_user)]: print("correct! welcome %s login..." %_user) break elif count == 2: users_get_out_of_line.append(_user) print("your account will be locked") f2 = open('users_get_out_of_line.txt','w+') for ii in range(0,len(users_get_out_of_line)): f2.write(users_get_out_of_line[ii]+"\t") f2.close() break else: print("username is illegal")
用户密码字典(excel):users_password.xlsx
违规用户(.txt)users_get_out_of_line.txt
新建一个就放到python文件同一个目录下就ok了,如:
三级菜单
1/三级菜单
2/可依次选择进入的
3/所需要的知识点:列表/字典
详细要求:
通过b返回上一级,通过q直接退出程序
省,市,县,(流程图)
思维导图:
代码:
# -*- coding:utf-8 -*- #!/usr/bin/env python # Author:suchagal zone = { '山东' : { '青岛' : ['四方','黄岛','崂山','李沧','城阳'], '济南' : ['历城','槐荫','高新','长青','章丘'], '烟台' : ['龙口','莱山','牟平','蓬莱','招远'] }, '江苏' : { '苏州' : ['沧浪','相城','平江','吴中','昆山'], '南京' : ['白下','秦淮','浦口','栖霞','江宁'], '无锡' : ['崇安','南长','北塘','锡山','江阴'], '宿迁' : ['沭阳','泗阳','泗洪','宿豫','宿城'] }, '浙江' : { '杭州' : ['西湖','江干','下城','上城','滨江'], '宁波' : ['海曙','江东','江北','镇海','余姚'], '温州' : ['鹿城','龙湾','乐清','瑞安','永嘉'] }, '安徽' : { '合肥' : ['蜀山','庐阳','包河','经开','新站'], '芜湖' : ['镜湖','鸠江','无为','三山','南陵'], '蚌埠' : ['蚌山','龙子湖','淮上','怀远','固镇'] }, '广东' : { '深圳' : ['罗湖','福田','南山','宝安','布吉'], '广州' : ['天河','珠海','越秀','白云','黄埔'], '东莞' : ['莞城','长安','虎门','万江','大朗'] } } #print(zone.keys()) #print(zone['江苏']['宿迁']) #print(zone['江苏'].keys()) while True: print(zone.keys()) which_province = input("choice a province:") if which_province in zone.keys(): while True: print(zone[which_province].keys()) which_city = input("choice a city:") if which_city in zone[which_province].keys(): print(zone[which_province][which_city]) while True: which_chioce = input("程序已结束,back返回上一级,quit退出:") if which_chioce == 'back': break elif which_chioce == 'quit': exit() else : print("input error!") continue elif which_city == 'back': break elif which_city == 'quit': exit() else: print("input error,please input again") continue elif which_province == 'back': continue elif which_province == 'quit': break else: print("input error!") continue
这里面有几个知识点,下次更新。
就写这么多了,送上一句励志英文:
Albert Einstein: Logic will get you from A to B. Imagination will take you everywhere.