逐层进入和返回上一层的实现

#1   简单版  切换goods = {
    ‘华为‘:{
        ‘A系‘:{‘A1‘:[1000,1100,1200,],‘A2‘:[2000,2100,2200,],‘A3‘:[3000,3100,3200,],},
        ‘B系‘:{‘B1‘:[4000,4200,4400,],‘B2‘:[5000,5200,5400,],‘B3‘:[6000,6200,6400,],},
        ‘C系‘:{‘C1‘:[7000,7300,7600,],‘C2‘:[8000,8300,8600,],‘C3‘:[9000,9300,9600,],},},
    ‘小米‘:{
        ‘M系‘:{‘M1‘:[610,630,650,],‘M2‘:[710,730,750,],‘M3‘:[810,830,850,],},
        ‘N系‘:{‘N1‘:[920,950,980,],‘N2‘:[1020,1050,1080,],‘N3‘:[1120,1150,1180],},
        ‘L系‘:{‘L1‘:[1230,1270,1300,],‘L2‘:[1430,1470,1500,],‘L3‘:[1630,1670,1700,],},},
    ‘魅族‘:{
        ‘X系‘:{‘X1‘:[599,699,799,],‘X2‘:[699,799,899,],‘X3‘:[799,899,999,],},
        ‘Y系‘:{‘Y1‘:[1099,1199,1299,],‘Y2‘:[1299,1399,1499,],‘Y3‘:[1499,1599,1699,],},
        ‘Z系‘:{‘Z1‘:[2099,2199,2299,],‘Z2‘:[2399,2499,2599,],‘Z3‘:[2699,2799,2899,],},},}

menu = [goods]

while 1:
    for good in goods:
        print(good)

    choose = input("请选择》》》")
    if choose in goods:
        #将当前的遍历字典加入到menu列表中,方便返回时调用
        menu.append(goods)
        #把用户选择的字典,赋值给goods
        goods = goods[choose]

    elif choose.upper()=="B":
        #用户选择返回上一级时,把记录列表中最后一项赋值给要循环的goods,然后再把最后一项一个字典删除
        goods = menu[-1]
        menu.pop()
    elif choose.lower()=="q":
        break
    else:
        print("你输入有误,请重新选择")

2.目录逐层进入和返回上一层的实现

import os

def switch_dir(path):

    menu = [path]

    while 1:
        lst = os.listdir(path)

        for el in lst:
            print(el)

        choose = input("请选择(../表示切换到上层目录)》》》")
        if choose in lst and os.path.isdir(os.path.join(path, choose)):

            menu.append(path)
            path = os.path.join(path, choose)

        elif choose.strip() =="../":#
            path = menu[-1]

            if len(menu)==1:
                print("已经是家目录了,没有上一层目录了")
            else:
                menu.pop()

        elif choose.upper()=="Q":
            break

        else:
            print("输入有误或为非文件夹")

path = "d:\home"
switch_dir(path)

原文地址:https://www.cnblogs.com/knighterrant/p/10163895.html

时间: 2024-08-30 14:36:39

逐层进入和返回上一层的实现的相关文章

文件管理(页面上显示文件和文件夹,文件夹可以打开也可以返回上一层文件夹)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

C#:返回上一层

使用Request.UrlReferrer时需要注意: 1. 如果上一页面使用document.location方法导航到当前页面,Request.UrlReferrer返回空值 2. 如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load事件中导航到B 页面,则 Request.UrlReferrer返回空.因为 在 Page_load事件中页面还未初始化,所以无法记录当前页的信息,导航到b页面也就无法获得上一页面的信息 3. 点击刷新按钮不会改变Request.Url

如何关闭UINavigationController 向右滑动 返回上一层视图

说明一下: 我的nav 设置的rootview 是 tabbarcontroller,登录界面是push进去的,所以,在登录界面,如果靠近最左边 向右滑动 会出现 tabbarcontroller的视图, iOS 7中在传统的左上角返回键之外,提供了右滑返回上一级界面的手势.支持此手势的是UINavigationController中新增的属性 interactivePopGestureRecognizer,即右滑返回只支持以UINavigationController为容器的ViewContr

linux 中怎样返回上一层目录的命令

可以使用cd命令,cd命令的功能是切换到指定的目录:命令格式:cd [目录名]目录名有几个符号有特殊的含义,".."代表上一级目录."~"代表HOME目录."-"代表前一目录.因此返回上一级目录可以使用命令:cd .. 原文地址:https://www.cnblogs.com/confessionlouis/p/switchdir.html

安卓.点击头像--&gt;编辑个人姓名--&gt;提交后.同时调用js关闭页面--&gt;返回上一层

$(document).ready(function() { $('#selfbtn').click(function(){ var u = navigator.userAgent; if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) { //安卓手机 TripMobile.closeCurrentWindow(); } else if (u.indexOf('iPhone') > -1) { //苹果手机 /*$(&quo

移动端返回上一页,刚需!document.referrer 详解

返回上一页,在PC端我们可以使用:history.go(-1)或者history.back(),可以正常返回第一层.这样,我们不需要上一页的 url 具体是什么,只要使用 history 一般都没啥问题. 但是在移动端,如果想要返回上一页.比如从A页面跳到B页面,如果B页面想返回A页面,为了防止不会跳错,必须要有一个 <  按钮,给它加 history.go(-1) ,返回上一层. <a href="javascript:history.go(-1)" class=&quo

返回上一视图,凸显一个视图,其他视图变模糊

// //  AchievementViewController.m //  LIBAOZHENG0826 // //  Created by 张艳锋 on 15/8/27. //  Copyright (c) 2015年 张艳锋. All rights reserved. // #import "AchievementViewController.h" #import "LBZModelDataAll.h" #import "LBZPrefixHeade

android webview点击返回键返回上一级activity

android webview点击返回键返回上一个activity 1 @Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) { 3 // TODO Auto-generated method stub 4 if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 5 return true; 6 } 7 return super

js 返回上一页和刷新以及页面跳转

1. Javascript 返回上一页history.go(-1), 返回两个页面: history.go(-2); 2. history.back(). 3. window.history.forward()返回下一页 4. window.history.go(返回第几页,也可以使用访问过的URL) 例: <a href="javascript:history.go(-1);">向上一页</a> response.Write("<script