• 第一天python作业


    1,多用户登录,3次锁定

    #!/usr/bin/env  python
    # -*- coding: UTF-8 -*-
    # Author: Aaron Shen
    
    import sys                  #导入模块
    user = {'alex':'alex123','guest':'123'}                 #确定可用的用户名和密码
    f = open('black.list','a+')                 #创建黑名单
    f.close()                   #关闭文件
    while True:                 #遍历循环
        match = 0                   #锁定匹配
        username = input('username:')                   #输入用户名
        f = open('black.list')                  #打开黑名单
        for line in f.readlines():                  #遍历所有行
            if username == line.strip('
    '):                    #如果用户名匹配
                print('The user has been locked')                   #打印
                match = 1                   #锁定
        f.close()                   #关闭文件
        if match == 1:                  #如果输入的用户名已锁定
            continue                #跳出此次循环,重新输入
        else:                   #否则
            if username in user.keys():                 #如果用户名存在
                for i in range(5):                  #遍历
                    if i < 3:                   #遍历3次
                        password = input('password:')                   #输入密码
                        if password == user[username]:                  #密码正确
                            print('welcome to my system')                   #打印
                            sys.exit(0)                 #安全退出
                        else:                   #否则
                            print('33[31;1mPassword error33[0m')                    #打印失败
                    else:                   #输入三次以后
                        print('You have tried 3 times, all failed, 88')                 #打印
                        f = open('black.list','a')                  #打开黑名单,开启追加功能
                        f.write('%s
    ' %username)                  #写入相应用户名
                        f.close()                   #关闭文件
                        break                   #跳出此次循环,重新输入用户名
            else:                   #用户名不存在
                print('user does not exist.')                   #打印

    2,多菜单联系,B回退到上一级目录,Q整体退出。

    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    # Author: Aaron Shen
    import sys                  #导入模块,用于最后的安全退出
    first_city = {
                  '北京':{'西城区':{'西直门':['肯德基','麦当劳'],'动物园':['公园','服装市场']},
                            '东城区':{'东单':['DQ冰淇凌','八喜'],'三里屯':['酒吧','工体']},
                            '朝阳区':{'北辰':['鸟巢','水立方'],'国展':['CBD','大型商场']}},
                  '上海':{'黄浦区':{'城隍庙':['书店','水煎包'],'黄埔一路':['赛百味','成都小吃']},
                            '长宁区':{'一街':['豪宅','服装店'],'二街':['肯德基','和路雪']},
                            '宝山区':{'101路':['乐器店','篮球场'],'202路':['酒吧','书店']}},
                  '广州':{'天河区':{'一桥':['足球场','球衣店'],'二桥':['大型商场','酒吧']},
                            '越秀区':{'1区':['公园','中学'],'2q区':['链家','我爱我家']}}
                  }                 #多菜单字典
    flag = 1                    #退出标记,用于跳出多重循环
    while True:                 #开始遍历
        if flag == 0:                   #如果标记触发
            break                   #跳出本层循环
        for city in enumerate(first_city.keys()):                   #循环出一级城市,用enumerate来标记数字次序
            print("%s:%s" %city)                    #打印数字:城市
        print("33[33;1mEnter 'q' on exit 
    33[0m")                  #打印q则退出
        select_number = input('input city number:').strip()                 #用户输入对应数字,前后空格忽略
        if select_number == 'q':                    #如果输入是q
            print('quit')                   #打印quit
            break                   #退出整个循环
        elif select_number == '':                   #如果输入为空
            print('Please input.')                  #打印
            continue                    #跳过本次循环,重新输入
        elif int(select_number) >= len(first_city.keys()):                  #如果输入号码大于所存在的城市数量
            print('Error,try again')                    #打印
            continue                    #跳过本次循环,重新输入
        else:                   #否则
            sel_number = int(select_number)                 #输入数字化
            m = list(first_city.keys())                 #将一级城市形成列表
            print(m[sel_number])                    #打印出城市
        while True:                 #二层遍历
            if flag == 0:                   #如果标记触发
                break                   #跳出本次循环
            for area in enumerate(first_city[m[sel_number]].keys()):                    #循环出二级行政区,用enumerate来标记数字次序
                print("%s:%s" %area)                    #打印
            print("33[33;1mEnter the 'q' exit, enter the 'b' on the back of the first menu
    33[0m")#                    #打印
            select_number2 = input('input area number:').strip()                    #用户输入对应数字,前后空格忽略
            if select_number2 == 'q':                   #如果输入是q
                print('quit')                   #打印
                flag = 0                    #触发退出标记
                break                   #退出本次循环,返回到上级循环
            if select_number2 == 'b':                   #如果输入是b
                break                   #退出本次循环,返回到上级循环
            elif select_number2 == '':                  #如果输入为空
                print('Please input.')                  #打印
                continue                    #跳过本次循环,重新输入
            elif int(select_number2) >= len(first_city[m[sel_number]].keys()):                  #如果输入号码大于所存在的行政区数量
                print('Error,try again')                    #打印
                continue                    #跳过本次循环,重新输入
            else:                   #否则
                sel_number2 = int(select_number2)                   #输入数字化
                m2 = list(first_city[m[sel_number]].keys())                 #将二级行政区形成列表
                print(m2[sel_number2])                  #打印
            while True:                 #三层遍历
                for street in enumerate(first_city[m[sel_number]][m2[sel_number2]].keys()):                 #循环出三级街道社区,用enumerate来标记数字次序
                    print("%s:%s" %street)                  #打印
                print("33[33;1mEnter the 'q' exit, enter the 'b' on the back of the first menu
    33[0m")                 #打印
                select_number3 = input('input street number:').strip()                  #用户输入对应数字,前后空格忽略
                if select_number3 == 'q':                   #如果输入是q
                    print('quit')                   #打印
                    flag = 0                    #触发退出标记
                    break                   #退出本次循环,返回到上级循环
                elif select_number3 == 'b':                 #如果输入是b
                    break                   #退出本次循环,返回到上级循环
                elif select_number3 == '':                  #如果输入为空
                    print('Please input.')                  #打印
                    continue                    #跳过本次循环,重新输入
                elif int(select_number3) >= len(first_city[m[sel_number]][m2[sel_number2]].keys()):                 #如果输入号码大于所存在的社区街道数量
                    print('Error,try again')                    #打印
                    continue                    #跳过本次循环,重新输入
                else:                   #否则
                    sel_number3 = int(select_number3)                   #输入数字化
                    m3 = list(first_city[m[sel_number]][m2[sel_number2]].keys())                    #将三级社区街道形成列表
                    print(first_city[m[sel_number]][m2[sel_number2]][m3[sel_number3]])                  #打印
                    sys.exit(0)                 #安全退出
  • 相关阅读:
    java LinkedHashSet
    java hashcode,equals方法必须重写
    java Set ,HashSet
    java ArrayList嵌套ArrayList
    java 基本数据类型数组与集合之间相互转换
    java 可变参数 和 静态导入
    java 三种迭代 删除元素
    java 泛型的通配符
    java 泛型接口
    java 泛型类,泛型方法
  • 原文地址:https://www.cnblogs.com/aaron-shen/p/5495119.html
Copyright © 2020-2023  润新知