前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python实现简单的三级菜单

Python实现简单的三级菜单

作者头像
Jetpropelledsnake21
发布于 2018-05-02 08:07:47
发布于 2018-05-02 08:07:47
2.3K00
代码可运行
举报
文章被收录于专栏:JetpropelledSnakeJetpropelledSnake
运行总次数:0
代码可运行

话不多说,直奔代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 要处理的字典
dic1 = {
    '北京': {
        '东城':
            {
                '沙河': ['沙河机场', '链家'],
                '天通苑': ['北方明珠', '天通尾货']
            },
        '朝阳':
            {
                '花家地': ['朝阳公园', '望京soho'],
                '北小河': ['北小河公园', '北京中学']
            }
    },
    '上海': {
        '虹桥':
            {
                '虹桥机场': ['超市', '特产店', '水吧'],
                '东方明珠': ['电影院', '游泳馆', '餐馆']
            },
        '浦东':
            {
                '景秀路': ['世纪公园', '立交桥'],
                '中环路': ['鲁迅公园', '同济大学']
            }
    },
    '河北': {
        '石家庄':
            {
                '行唐': ['东正', '阳关'],
                '赵县': ['赵州桥', '高村乡']
            },
        '唐山':
            {
                '滦南县': ['司各庄镇', '安各庄镇'],
                '玉田县': ['玉田镇', '亮甲店镇']
            }
    }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 方法一:
tag=True
while tag:
    menu1=menu
    for key in menu1:
        print(key)

    choice1=input('The First Layer>>: ').strip()
    if choice1 == 'b':break
    if choice1 == 'q':
        tag = False
        break
    if choice1 not in menu1:continue

    while tag:
        menu2=menu1[choice1] 
        for key in menu2:
            print(key)

        choice2 = input('The Second Layer>>: ').strip()
        if choice2 == 'b':break
        if choice2 == 'q':
            tag=False
            break
        if choice2 not in menu2:continue

        while tag:
            menu3 = menu2[choice2]             for key in menu3:
                print(key)

            choice3 = input('The Third Layer>>: ').strip() 
            if choice3 == 'b':break
            if choice3 == 'q':
                tag=False
                break
            if choice3 not in menu3: continue

            while tag:
                menu4 = menu3[choice3]                  for key in menu4:
                    print(key)

                choice4 = input('The Fourth Layer>>: ').strip()
                if choice4 == 'b':break
                if choice4 == 'q':
                    tag=False
                    break

                if choice4 not in menu4: continue
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
current_layer = dic1
parent_layer = []  # 用来放置父级的key组成的list
choose_end=['沙河机场', '链家','北方明珠', '天通尾货','朝阳公园', '望京soho','北小河公园', '北京中学','超市', '特产店', '水吧',
            '电影院', '游泳馆', '餐馆','世纪公园', '立交桥','鲁迅公园', '同济大学','东正', '阳关','赵州桥', '高村乡','司各庄镇',
            '安各庄镇','玉田镇', '亮甲店镇',
            ]

Tag = True
while Tag:

    print('\033[31m%s \033[0m' % '请输入序号'.ljust(20, '*'))
    print('\033[31m***输入back返回上一级菜单,或者quit退出***\033[0m')

    for i in current_layer:
        print(i)

    choose = input('>>>:').strip()

    if choose in current_layer:
        if choose in choose_end:
            print('\033[31m%s \033[0m' % '已经到最后一页'.center(40, '*'))
            continue
        else:
            parent_layer.append(current_layer)
            current_layer = current_layer[choose]
        # else:
        #     print('\033[31m%s \033[0m' % '已经到最后一页'.center(40, '*'))

    elif choose == 'back':
        if len(parent_layer) != 0:
            current_layer = parent_layer.pop()
        else:
            print('\033[31m%s \033[0m' % '已经到达最上级菜单'.center(40, '*'))

    elif choose == 'quit':
        print('\033[31m Bye~Bye~^_^ \033[0m')
        break

    else:
        print('\033[31m%s \033[0m' % '输入有误,请重新输入'.center(40, '*'))
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-03-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Linux 温习(八): 文件权限
权限的意义在于允许某一个用户或某个用户组以规定的方式去访问某个文件。例如,Apache 服务进程默认由 Apache 用户访问,除了 root 用户以外,其他用户均不能访问相关进程,这样就能通过在文件上设置用户或用户组的访问方式达到限制目的。
陈大剩博客
2023/02/17
7440
Linux 温习(八): 文件权限
Linux入门篇 —— 一文带你彻底搞懂Linux 文件权限管理
Linux下文件/目录的权限和归属 访问权限 读取(r): 允许查看文件内容,显示目录列表 写入(w): 允许修改文件内容,允许在目录中新建、删除、移动文件或者子目录 可执行(x): 允许运行程序,切换目录 无权限(-): 没有权限 权限介绍 rw-r--r-- . 1 root root 1258 Jun 3 2019 initial-setup-ks.cfgd rwxr-xr-x . 2 root root 6 Jun 3 2019 Music - 代表普通文件 d 代表目录 c
ruochen
2021/02/07
1.1K0
Linux入门篇 —— 一文带你彻底搞懂Linux 文件权限管理
Linux文件权限的更改:理解第一,命令次之
Linux文件权限的更改: -Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。 -文件或目录的访问权限分为只读(r),只写(w)和可执行(x)三种。 -有三种不同类型的用户可对文件或目录进行访问:文件所有者(u),同组用户(g)、其他用户(o)。 基本权限: chmod u=rwx,g=rwx,o=rwx /目录 (给目录的属主,属组和其他用户所有权限) chmod u+r(u-r/g+w/o-r...) /目录 (给目录的属主只读权限
吴柯
2018/04/16
2.1K0
Linux系统文件权限管理
Linux操作系统是多任务(Multi-tasks)多用户(Multi-users)分时操作系统,linux操作系统的用户就是让我们登录到linux的权限,每当我们使用用户名登录操作系统时,linux都会对该用户进行认证、授权审计等操作,本章主要内容就是围绕着权限来讲解的,我会讲解Linux系统中的所有常用权限包括,普通权限/隐藏权限/特殊权限/ACL/SUDO/SELinux,等的设置与使用技巧.
王瑞MVP
2022/12/28
4.8K0
Linux 命令 | 每日一学,文件目录特殊权限相关命令集锦
描述:相信各位看友都看了UP主上一篇《Linux运维学习之文件目录属性及权限管理笔记》了吧,此篇将针对文件目录特殊权限等相关命令进行详细讲解,包括文件基本权限与特殊权限。
全栈工程师修炼指南
2024/06/21
2660
Linux 命令 | 每日一学,文件目录特殊权限相关命令集锦
linux-文件权限与归属(包括 SUID、SIGD、SBIT)-隐藏属性-文件访问控制列表 ACL-(chown-chmod)在SIGD目录下
本文由刘遄老师的《Linux就该这么学》摘抄整理而成,写成博客方便自己后期查阅 该书非常棒,语言简练,通俗易懂,非常推荐,你可以点连接去学习~
suwanbin
2019/12/19
1K0
Linux基础教程之linux文件权限深度解读
基本命令—— 1.cut : cat /etc/passwd | cut -d’:’ -f7| uniq -c| sort -nr
马哥linux运维
2018/11/16
1.2K0
Linux基础教程之linux文件权限深度解读
文件基本权限与特殊权限
默认权限需要换算成字母再相减,所有建立文件之后的默认权限,为666减去umask的值
全栈工程师修炼指南
2022/09/28
5K0
文件基本权限与特殊权限
linux中使用ACL保护文件目录
ACl (Access Control List),主要目的是提供传统的 owner、group、others 的 read、write、execute 权限之外的特殊权限需求设置。ACL 可以针对单一使用者、单一文件或目录来进行 r、w、x 的权限规范,对于需要特殊权限的使用状况非常有帮助 ACl 主要针对以下方面来控制权限: 使用者 user 群组 group 默认属性 mask:针对在该目录下在建立新文件/目录时,规范新数据的默认权限 有一个目录,给一堆人使用,每个人或每个群组所需要的权限并不相同,使
入门笔记
2022/06/02
1.1K0
Linux权限管理
之前在用户管理中提到用户和组的概念,服务器添加多账户的作用之一是可以针对不同用户分配不同的权限,从而根据不同权限限制用户可以访问到的系统资源。那么这次就来说一下Linux权限管理的相关内容,这部分也是非常重要的。如下。
reload
2024/02/04
3890
Linux权限管理
5 Linux 文件权限和访问控制列表
本文将探讨 Linux 中的文件权限和访问控制列表(ACL)。了解文件权限对于管理 Linux 系统中文件和目录的访问,确保安全性和数据完整性是至关重要的。
Lemon黄
2023/11/29
4660
5 Linux 文件权限和访问控制列表
Linux 权限管理
介绍一下 Linux 的权限管理。Linux 是多用户的操作系统,允许多个用户同时登录和工作,Linux 权限是操作系统用来限制不同用户对资源的访问机制。这里暂且将 Linux 中的权限分为三类:
OwenZhang
2021/12/08
3.6K0
四.linux文件权限
一个文件对应三种权限对象,分别文件的所有者user、所属组group和其他人other 每个权限对象对应三种权限,分别是读r、写w和执行x 权限数字对应关系
对弈
2019/09/04
4K0
Linux系统安全 | Linux下的用户、组和权限
注:一般来说,只有 root 用户的 uid 是为0的。如果黑客把一个普通用户的 uid 修改为0的话,那么他只要以普通用户的用户名和密码登录,系统就会自动切换到root用户。所以,系统加固的时候一定要过滤出有哪些用户的UID为0
谢公子
2022/01/19
3.1K0
Linux系统安全 | Linux下的用户、组和权限
Linux文件权限详解
#前言:我们知道,无论什么东西,涉及到安全性的,比如文件、文件夹、磁盘(就如window系统的磁盘,我们就可以通过bitlocker技术将磁盘给加密锁起来)、服务器,等都需要设置权限管理,以保证安全性,接下来让我们来探讨以下Linux的文件权限
老油条IT记
2020/03/20
5.3K0
2.19 特殊权限set_gid
set_gid set_gid(s):可作用于文件(二进制可执行文件)和目录。 相当于set_gid 设置group组的权限位。 可以使用chmod g+(-) 【文件名/目录名】 来设置权限。 也就是将标志s加到gid的x标志位,sgid用在目录上最多。 set_gid作用 - set_gid作用在文件上时,和set_uid效果一致,会使普通用户临时拥有所属组的身份 [root@hf-01 ~]# chmod u=rwx /usr/bin/ls 将ls命令权限恢复成默认初始权限 [root@hf-
运维小白
2022/01/06
4190
Linux文件权限管理
Linux操作系统作为一个多用户系统,为每个用户提供了独立且安全的工作环境。每个用户对自己的文件拥有全部的权限,但对于其他用户的文件,则只有限定的访问权限。本文将介绍如何在Linux中管理文件和目录权限,包括如何查看、更改权限,以及如何设置特定文件夹下新建文件的默认属主。
运维开发王义杰
2023/08/10
3260
Linux文件权限管理
linux权限
基本概念 访问权限 读取:允许查看内容-read 写入:允许修改内容-write 可执行:允许运行和切换-excute 对于文本: r 读取权限:cat、less、grep、head、tail w写入权限:vim、>、>> x 可执行权限:Shell与Python 对于目录: 读取权限:查看目录内容 写入权限:能够创建、删除、修改等目录的内容 执行权限:能够cd切换到此目录下 归属关系 所有者:拥有此文件/目录的用户-user 所属组:拥有此文件/目录的组-group 其他用户:除所有着、所属组以外
用户8360274
2021/03/15
9.7K0
linux中实现灵活的特殊权限管理ACL,以及ACL权限判断顺序!
为什么要使用ACL?在linux中,我们可以使用:”ll 文件名“来查看文件的权限。
用户4877748
2020/07/21
1K0
【Linux】聊聊Linux的文件权限管理
对于file1.txt,首先是属主权限rwx,只对属主alice账号生效,说明alice对该文件有rwx的全部权限。
一名白帽的成长史
2019/10/08
3.7K0
【Linux】聊聊Linux的文件权限管理
相关推荐
Linux 温习(八): 文件权限
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档