zoukankan      html  css  js  c++  java
  • python练习_module011三级菜单

    以3级目录来模拟3级菜单的运作。

    1.首先创建一个能够表明3级目录结构之间映射关系的字典,然后将其存入一个pickle文件以便调用

     1 import pickle
     2 
     3 dir_windows = ['explorer.exe']
     4 part_C = {'windows': dir_windows}
     5 
     6 dir_setup = ['rhel-7.3.iso', 'SecureCRT6.rar']
     7 dir_program = ['putty.exe', 'PhotoshopCC2016.exe']
     8 part_D = {'setup': dir_setup, 'program': dir_program}
     9 
    10 dir_video = ['君の名は.mp4']
    11 dir_game = ['NieR: Automata', 'Sid Meier\'s Civilization VI']
    12 part_E = {'video': dir_video, 'game': dir_game}
    13 
    14 root = {'C': part_C, 'D': part_D, 'E': part_E}
    15 
    16 with open('dir.pkl','wb') as f:
    17     pickle.dump(root,f)

    2.主程序

     1 #! /usr/bin/env python3
     2 # -*- coding:utf-8 -*-
     3 # Author:Jailly
     4 
     5 '''
     6     以3级的目录结构模拟三级菜单,目录结构如下::
     7         C
     8             windows
     9                 explorer.exe
    10         D
    11             setup
    12                 rhel-7.3.iso
    13                 SecureCRT6.rar
    14             program
    15                 putty.exe
    16                 PhotoshopCC2016.exe
    17         E
    18             video
    19                 君の名は.mp4
    20             game
    21                 NieR: Automata
    22                 Sid Meier's Civilization VI 
    23 '''
    24 
    25 import time,os,pickle
    26 
    27 def quit():
    28     print('谢谢您的使用,正在退出系统',end = '')
    29     for i in range(3):
    30         time.sleep(0.5)
    31         print('.',end = '')
    32     time.sleep(0.5)
    33     print('\n已退出!')
    34     time.sleep(1)
    35     exit()
    36 
    37 def s1(select1 = None):
    38     if not select1:
    39         print('欢迎进入系统,根目录下有如下分区:%s' % (''.join(sorted(root.keys()))))
    40         select1 = input('请选择您想要执行的操作:(“[分区名]”:进入分区;“q”:退出):')
    41 
    42     if select1 in root.keys():
    43         s2(select1)
    44     elif select1 == 'q':
    45         quit()
    46     else:
    47         select1 = input('您的输入不正确,请重新输入:')
    48         s1(select1)
    49 
    50 def s2(select1,select2 = None):
    51 
    52     if not select2:
    53         print('当前路径为%s,有如下目录:%s' % (select1,''.join(sorted(root[select1].keys()))))
    54         select2 = input('请选择您要执行的操作(“[目录名]”:进入目录;"b":返回上一级;“q”:退出):')
    55 
    56     if select2 in root[select1].keys():
    57         s3(select1,select2)
    58     elif select2 == 'b':
    59         s1()
    60     elif select2 == 'q':
    61         quit()
    62     else:
    63         select2 = input('您的输入不正确,请重新输入:')
    64         s2(select1,select2)
    65 
    66 def s3(select1,select2,select3 = None):
    67 
    68     if not select3:
    69         print('当前路径为%s,有如下文件:%s' % (os.path.join(select1,select2),''.join(sorted(root[select1][select2]))))
    70         select3 = input('请选择您要执行的操作(“b”:返回上一级;“q”:退出):')
    71 
    72     if select3 == 'b':
    73         s2(select1)
    74     elif select3 == 'q':
    75         quit()
    76     else:
    77         select3 = input('您的输入不正确,请重新输入(“b”:返回上一级,“q”:退出):')
    78         s3(select1,select2)
    79 
    80 if __name__ == '__main__':
    81 
    82     with open('dir.pkl','br') as f:
    83         root = pickle.load(f)
    84 
    85     s1()

    或者使用循环的方式来实现:http://www.cnblogs.com/jailly/p/6710179.html

  • 相关阅读:
    PC端圣诞树下载
    win7开机一直在正在启动windows界面怎么办?
    EFI、UEFI、MBR、GPT的区别
    进入BIOS中,设置U盘启动
    CSS3摆动动画效果
    比特币钱包搭建与使用
    自动校时工具
    windows7蓝屏0x000000c4
    如何使用webpack打包你的项目
    开源货币/比特币Multiminer、bitrade、bitcoinjs-lib、python-bitcoinrpc介绍
  • 原文地址:https://www.cnblogs.com/jailly/p/6709573.html
Copyright © 2011-2022 走看看