Day-1

用户登录
------------------------------------------------------------------------------------------
1、程序说明
实现功能如下
⑴用户输入账户密码进行登录
⑵用户信息保存在文件内
⑶用户密码输入错误三次后锁定用户
#!/usr/local/bin/python3
# -*- coding=utf-8 -*-

dis = {
    'qian1':{'password':'123','count':0},
    'qian2':{'password':'123','count':0},
    'qian3':{'password':'123','count':0},
}



while True:
    name = input('username:    ').strip()
    if name not in dis.keys():
        print('用户名不存在')
        continue


    with open(r'C:\Users\bruce\Desktop\OldBoyPython作业\Day1\black_txt.txt','r') as f:
        txt = f.read()
        if name in txt:
            print('账号已被锁定')
            break


    if dis[name]['count'] > 2:
        print('尝试次数超过次数,已锁定!')
        with open(r'C:\Users\bruce\Desktop\OldBoyPython作业\Day1\black_txt.txt','w') as black_txt:
            black_txt.write('%s' % name)
        break



    password = input('password:   ').strip()
    if password == dis[name]['password']:
        print('登录成功')
        break
    else:
        print('密码输入有误,请重新登录')
        dis[name]['count'] += 1
View Code

多级菜单
-----------------------------------------------------------
1、程序说明
实现功能如下
⑴运行程序输出第一级菜单
⑵选择一级菜单某项,输出二级菜单,同理输出三级、四级菜单
⑶菜单数据保存在文件中
#!/usr/local/bin/python3
# -*- coding=utf-8 -*-

menu_dict = {
    '南京':{
        '玄武区':{
            '南麓':{'中山陵':1,'紫金山':2,'明孝陵':3},
            '玄武湖':2,
            '总统府':3
        },
        '鼓楼区':{'阅江楼':1,'鼓楼公园':2,'幕府山':3},
        '秦淮区':{'夫子庙':1,'秦淮河':2,'瞻园':3},
    },
    '上海':{
        '徐汇区':{'徐家汇':1,'湖南路':2,'虹梅路':3},
        '静安区':{'江宁':1,'静安寺':2,'南京西路':3},
        '长宁区':{'江苏路':1,'天山路':2,'华阳路':3},
    },
    '江西':{
        '南昌市':{'东湖区':1,'西湖区':2,'青云谱区':3},
        '宜春市':{'丰城区':1,'高安市':2,'樟树市':3},
        '九江市':{'庐山区':1,'瑞昌市':2,'永修县':3},
    },
    '北京':{'朝阳区':{'建外':{'赛特':1,'建国饭店':2},
            '三里屯':2,
            '亚运村':3
          },
          '海淀区':{'中关村':1,'清华园':2,'白石桥':3},
          '丰台区':{'北大地':1,'花乡桥':2,'长辛店':3},
    }
}

dic_key = {}

def menu_dict1():
    while True:
        for keys,value in enumerate(menu_dict,1):
            with open('/home/qianzhiqiang/daima/daima/connect/Practice_Lab/for_exe/menu_txt.txt', 'a') as black_txt:
                black_txt.write('%s:%s\n' % (keys,value))
            print(keys,value)
            dic_key[str(keys)] = value
        choice = input('请按数字进行选择([b]返回上一级,[q]退出):')
        if choice == 'q':
            quit()
        elif choice == 'b':
            print('已经到顶层了,不可以再回退!')
        elif not choice.isdigit():
            print('请输入正确的数字')
        elif dic_key.get(choice):
            menu_dict2(dic_key[choice])
        else:
            print('输入数字不正确,请重新输入')

def menu_dict2(choice_1):
    while True:
        for keys_second , value_second in enumerate(menu_dict[choice_1],1):
            with open('/home/qianzhiqiang/daima/daima/connect/Practice_Lab/for_exe/menu_txt.txt', 'a') as black_txt:
                black_txt.write('%s:%s\n' % (keys_second,value_second))
            print(keys_second,value_second)
            dic_key[str(keys_second)] = value_second
        choice_2 = input('请按数字进行选择([b]返回上一级,[q]退出):')
        if choice_2 == 'q':
            quit()
        elif choice_2 == 'b':
            menu_dict1()
        elif not choice_2.isdigit():
            print('请输入正确的数字')
        elif dic_key.get(choice_2):
            menu_dict3(choice_1,dic_key[choice_2])
        else:
            print('输入数字不正确,请重新输入')

def menu_dict3(choice_1,choice_2):
    while True:
        for keys_thrid , value_thrid in enumerate(menu_dict[choice_1][choice_2],1):
            with open('/home/qianzhiqiang/daima/daima/connect/Practice_Lab/for_exe/menu_txt.txt', 'a') as black_txt:
                black_txt.write('%s:%s\n' % (keys_thrid,value_thrid))
            print(keys_thrid,value_thrid)
            dic_key[str(keys_thrid)] = value_thrid
        choice_3 = input('请按数字进行选择([b]返回上一级,[q]退出):')
        if choice_3 == 'q':
            quit()
        elif choice_3 == 'b':
            menu_dict2(choice_1)
        elif not choice_3.isdigit():
            print('请输入正确的数字')
        elif dic_key.get(choice_3):
            menu_dict4(choice_1,choice_2,dic_key[choice_3])
        else:
            print('输入数字不正确,请重新输入')


def menu_dict4(choice_1, choice_2, choice_3):
    res = menu_dict[choice_1][choice_2][choice_3]
    while True:
        if isinstance(res,int):
            choice_4 = input('已经是最底层了,请选择([b]返回上一级,[q]退出):')
            if choice_4 == 'q':
                quit()
            elif choice_4 == 'b':
                menu_dict3(choice_1, choice_2)
        else:
            for keys_four,value_four in enumerate(res , 1):
                with open('/home/qianzhiqiang/daima/daima/connect/Practice_Lab/for_exe/menu_txt.txt',
                          'a') as black_txt:
                    black_txt.write('%s:%s\n' % (keys_four, value_four))
                print(keys_four, value_four)
                dic_key[str(keys_four)] = value_four
            choice_5 = input('请按数字进行选择([b]返回上一级,[q]退出):')
            if choice_5 == 'q':
                quit()
            elif choice_5 == 'b':
                menu_dict3(choice_1, choice_2)
            elif not choice_5.isdigit():
                print('请输入正确的数字')
            else:
                print('已经是最底层!')


if __name__ == '__main__':
    menu_dict1()
View Code

 

posted @ 2017-09-13 09:27  Bruce_qian  阅读(69)  评论(0编辑  收藏  举报