码迷,mamicode.com
首页 > 编程语言 > 详细

第一天python作业

时间:2016-05-15 14:04:19      阅读:364      评论:0      收藏:0      [点我收藏+]

标签:

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(\n):                    #如果用户名匹配
            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(\033[31;1mPassword error\033[0m)                    #打印失败
                else:                   #输入三次以后
                    print(You have tried 3 times, all failed, 88)                 #打印
                    f = open(black.list,a)                  #打开黑名单,开启追加功能
                    f.write(%s\n %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("\033[33;1mEnter ‘q‘ on exit \n\033[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("\033[33;1mEnter the ‘q‘ exit, enter the ‘b‘ on the back of the first menu\n\033[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("\033[33;1mEnter the ‘q‘ exit, enter the ‘b‘ on the back of the first menu\n\033[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)                 #安全退出

 

第一天python作业

标签:

原文地址:http://www.cnblogs.com/aaron-shen/p/5495119.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!