#!/usr/bin/env python
#coding = utf-8
age_of_oldby = 56
user = "fyt"
word = "fyt"

f = open("black_user.txt","r")
lock_file = f.read()
f.close()
count = 0

city_dct = {'北京':{'海淀区':['上地','西二旗','颐和园','五道口','六道口'],
                    '昌平区':['生命科学园','史各庄','朱辛庄','沙河','县城','北小营'],
                    '朝阳区':['国贸','双井','太阳宫','东直门','柳芳']}}

city_index = [(index,key) for index, key in  enumerate(city_dct)]
city_index.append((len(city_index),'退出'))

for i in range(3):
    username = input("请输入账号")
    password = input("请输入密码")

    if lock_file == username:
       print("您的账号已被锁定")
       break
    elif username==user and password==word:
        print("欢迎您")
    else:
        print("账号密码错误")
    count+=1
    if count==3:
        print("您的账号将被锁定")
        f = open("black_user.txt","w")
        f.write("%s" %username)
        f.close()

    while True:
        print("欢迎查询北京地图")
        print('------------------------------')
        for i in  city_index:
            for j in  i:
                print(j,end='')
            print('')

        get_city = input('请输入查询标号')
        if not get_city.isdigit():
            print('请输入一个数字索引号')
            continue
        elif int(get_city) >= len(city_index):
            print('输入的数字太大,请确认并输入')
            continue
        elif int(get_city) == len(city_index)-1:
            print('欢迎再登陆,bye bye!')
            break
        else:
            choose_city = city_index[int(get_city)][1]
            area_index = [(index,key) for index,key in enumerate(city_dct[choose_city])]
            area_index.append((len(area_index),'返回'))
            while True:
                for i in  area_index:
                    for j in i:
                        print(j,end='')
                    print('')
                get_area = input('请选择查询的索引号')
                if not get_area.isdigit():
                    print('请输入一个数字索引号')
                    continue
                elif int(get_area) >= len(area_index):
                    print('输入的数字太大,请重新输入')
                    continue
                elif int(get_area) == len(area_index)-1:
                    print('返回到上一级菜单')
                    break
                else:
                    choose_area = area_index[int(get_area)][1]
                    print(city_dct[choose_city][choose_area])
                    print('--------------------')
    else:
        quit()

python 自学 1 day的更多相关文章

  1. python自学笔记

    python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...

  2. Python - 自学django,上线一套资产管理系统

    一.概述 终于把公司的资产管理网站写完,并通过测试,然后上线.期间包括看视频学习.自己写前后端代码,用时两个多月.现将一些体会记录下来,希望能帮到想学django做web开发的人.大牛可以不用看了,小 ...

  3. 拎壶冲冲冲专业砸各种培训机构饭碗篇----python自学(一)

    本人一直从事运维工程师,热爱运维,所以从自学的角度站我还是以python运维为主. 一.python自学,当然少不了从hello world开始,话不多说,直接上手练习 1.这个可以学会 print( ...

  4. [Python自学] day-21 (2) (Cookie、FBV|CBV装饰器)

    一.什么是Cookie 1.什么是Cookie? Cookie是保存在客户端浏览器中的文件,其中记录了服务器让浏览器记录的一些键值对(类似字典). 当Cookie中存在数据时,浏览器在访问网站时会读取 ...

  5. [Python自学] day-21 (1) (请求信息、html模板继承与导入、自定义模板函数、自定义分页)

    一.路由映射的参数 1.映射的一般使用 在app/urls.py中,我们定义URL与视图函数之间的映射: from django.contrib import admin from django.ur ...

  6. [Python自学] day-20 (Django-ORM、Ajax)

    一.外键跨表操作(一对多) 在 [Python自学] day-19 (2) (Django-ORM) 中,我们利用外键实现了一对多的表操作. 可以利用以下方式来获取外键指向表的数据: def orm_ ...

  7. [Python自学] day-19 (2) (Django-ORM)

    一.ORM的分类 ORM一般分为两类: 1.DB first:先在DB中创建数据库.表结构,然后自动生成代码中的类.在后续操作中直接在代码中操作相应的类即可. 2.Code first:直接在代码中实 ...

  8. [Python自学] day-19 (1) (FBV和CBV、路由系统)

    一.获取表单提交的数据 在 [Python自学] day-18 (2) (MTV架构.Django框架)中,我们使用过以下方式来获取表单数据: user = request.POST.get('use ...

  9. [Python自学] day-18 (2) (MTV架构、Django框架、模板语言)

    一.实现一个简单的Web服务器 使用Python标准库提供的独立WSGI服务器来实现MVC架构. 首先,实现一个简单的Web服务器: from wsgiref.simple_server import ...

  10. Python自学之路---Day13

    目录 Python自学之路---Day13 常用的三个方法 匹配单个字符 边界匹配 数量匹配 逻辑与分组 编译正则表达式 其他方法 Python自学之路---Day13 常用的三个方法 1.re.ma ...

随机推荐

  1. javascript运算符与表达式

    表达式 表达式是关键字.运算符.变量以及文字的组合,用来生成字符串.数字或对象.一个表达式可以完成计算.处理字符.调用函数.或者验证数据等操作. 表达式的值是表达式运算的结果,常量表达式的值就是常量本 ...

  2. mysql-5.6.17-win32的安装?

    官方mysql最新版本:http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz 解压后,以管理员的身份打开cmd.exe,切入安装目录 ...

  3. Retrofit源码研究

    2016-05-06 15:35:27 最近抽空研究了一下Retrofit源码,包括API使用.源码结构.使用到的设计模式.SDK的架构设计.作者设计/实现思路等,会形成一系列文章. 以前Retrof ...

  4. win8.1安装Matlab7.0的兼容问题

     Matlab7.0安装完成后打开就立即关闭,此时右键点击MATLAB7.0快捷方式-"用图形处理器运行"-"更改默认图形处理器",将"集成图形&qu ...

  5. robots笔记以免忘记

    html头部标签写法: <meta name="robots" content="index,follow" /> content中的值决定允许抓取 ...

  6. 痛苦的vsftpd配置

    1.下载安装:yum install vsftpd 2.添加用户和组(不一定要添加组) group -g 1010 customedname useradd -g customedname -d /h ...

  7. php ob_start()、ob_end_flush和ob_end_clean()多级缓冲

    ob_start() 和 ob_end_flush() 是一对很好的搭档,可以实现对输出的控制.当成一对出现理解起来就没什么问题,但是当他们两个各自出现次数增加时,就比较难理解了. <?php ...

  8. Builder模式

    原文来源于http://www.iteye.com/topic/71175 对于Builder模式很简单,但是一直想不明白为什么要这么设计,为什么要向builder要Product而不是向知道建造过程 ...

  9. html xml

    XML被设计用来携带数据. XML不是用来替代HTML的.XML和HTML为不同的目的而设计: XML被设计用来描述数据,其焦点是数据的内容. HTML被设计用来显示数据,其焦点是数据的外观. HTM ...

  10. IOS App 右上脚红色数字提醒

    IOS8.0以前直接显示: UIApplication *application=[UIApplication sharedApplication]; //设置图标上的更新数字 application ...