#!/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. MSP430FR5739串口程序

    今天急着用这个片子的串口,匆忙中调试串口也话费了一段时间,在网上下了一个程序,忽然就把所有问题搞清楚了,只是中断就看着头文件中寄存器写的,虽然通讯正常,不过不确定有没有写错.代码如下: #includ ...

  2. ROS语音交互(三)科大讯飞语音在ROS平台下使用

    以上节tts语音输出为例 下载sdk链接:http://www.xfyun.cn/sdk/dispatcher 1.下载SDK,解压: 2.在ROS工作空间下创建一个Package: catkin_c ...

  3. 401. Binary Watch

    [题目] Total Accepted: 10330 Total Submissions: 24061 Difficulty: Easy Contributors: Admin A binary wa ...

  4. GDI+ 绘制经验

    现有一种场景,鼠标移动时,假设鼠标坐标为 X , Y , 需实时在 坐标 (X , 0) , (0 , Y) 两处更新内容. 方案一:增加两个label ,或其它控件,鼠标移动时,实时更新 label ...

  5. ionic的start-y属性初始化页面

    混合式开发移动app,要实现的是初始化页面时不展示搜索框,让页面向上移动一定位移. <ion-content class="has-subheader" start-y=&q ...

  6. ubuntu 搭建maven库 2.14.2-01并配置离线索引文件

    前提 安装JDK版本1.8或者以上 1 下载 http://www.sonatype.org/nexus/archived/  选择相应的版本 2 复制到/usr/local 下解压 sudo cp ...

  7. 关于freeCAD

    FreeCAD界面 FreeCAD的功能目的是成为一个3D CAD 建模工具.她的开发完全遵循 Open Source (GPL & LGPL License)协议. FreeCAD的目标直指 ...

  8. layoutSubviews 与 drawRect

    layoutSubviews总结 ios layout机制相关方法 - (CGSize)sizeThatFits:(CGSize)size- (void)sizeToFit——————- - (voi ...

  9. Android Studio运行SlidingView报错 FloatMath函数

    1,错误信息时这样的(图片百度的,但是提醒的是一样的) 我们点击这个错误提示,就会跳到出错的地方 2,开始的时候觉得很蛋疼,因为这个SlidingView是从别处导过来的,没什么问题把...就很久就 ...

  10. 一维码生成 c# winform GUI

    最近看到同事小红在做一维码,感觉挺好玩,于是就在网上找了一个例子来玩玩. 下面的代码均为网上的代码,做了一些整理,但是忘记了出处,原作者看到可以提醒我,谢谢. 首先,一维码的相关知识可以先百度一下:h ...