#!/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. Android中dp,px,sp概念梳理以及如何做到屏幕适配

    http://blog.csdn.net/jiangwei0910410003/article/details/40509571

  2. Java接口中的方法

    接口中可以含有变量和方法.但是,接口中的变量会被隐式地指定为public static final变量(并且只能是public static final变量,用private修饰会报编译错误),而方法 ...

  3. IE6兼容问题并解决总结

    1.使用声明你必须经常在html网页头部放置一个声明,推荐使用严格的标准.例如<!DOCTYPEHTMLPUBLIC“-//W3C//DTDHTML4.01//EN”   "http: ...

  4. LLDB, iOS调试器

    breakpoint set -s "" breakpoint set    -M <method> ( --method <method> )    -S ...

  5. [小菜随笔]python tkinter实现简单的ping命令

    本文主要是介绍python图形界面上的按键与实际功能的对接,其实编程掌握了基础之后的学习应该都是靠自己去挖掘其他的 在网上发现多半教程都是2的,故本文使用的是python3.5,其实也没什么区别,就有 ...

  6. Oracle查询数据库中的所有表

    SELECT A.TABLE_NAME 表英文名,       A.TAB_COMMENTS 表中文名,       A.COLUMN_ID 序号,       A.COLUMN_NAME 英文名,  ...

  7. md5应用

    /* md5工具类 */ public class MD5Util { /**全局数组**/ private final static String[] strDigits = { "0&q ...

  8. DOM扩展之 专有扩展

    11.4.3 contains() 方法 用来确定某个节点是不是另一个节点的后代. 注:a.contains(a) 也是返回true.说明contains方法搜索是从自身开始的. DOM Level ...

  9. 【zz】matlab 直方图匹配

    原文地址:http://www.cnblogs.com/tiandsp/archive/2012/12/19/2825418.html 直方图匹配或叫做直方图规定化都可以,是把原图像的直方图按照给定的 ...

  10. webpack vuejs项目学习心得

    最近在做移动端的项目,最近webpack和vuejs很火,就想到了用vuejs webpack来构建我的项目 先了解了一些webpack的入门基础 http://webpack.github.io/d ...