实例 - 购物车 (字典、循环)

menu = {
    ‘北京‘:{
        ‘朝阳‘:{
            ‘国贸‘:{
                ‘CICC‘: {},
                ‘HP‘: {},
                ‘渣打银行‘: {},
                ‘CCTV‘: {},
            },
            ‘望京‘:{
                ‘陌陌‘: {},
                ‘奔驰‘: {},
                ‘360‘: {},
            },
            ‘三里屯‘:{
                ‘优衣库‘:{},
                ‘apple‘:{},
            }

        },
        ‘昌平‘:{
            ‘沙河‘:{
                ‘老男孩‘:{},
                ‘阿泰包子‘:{},
            },
            ‘天通苑‘:{
                ‘链家‘:{},
                ‘我爱我家‘:{},
            },
            ‘回龙观‘:{}
        },
        ‘海淀‘:{
            ‘五道口‘:{
                ‘谷歌‘:{},
                ‘网易‘:{},
                ‘Sohu‘:{},
                ‘Sogo‘:{},
                ‘快手‘:{},
            },
            ‘中关村‘:{
                ‘youku‘:{},
                ‘Iqiyi‘:{},
                ‘汽车之家‘:{},
                ‘新东方‘:{},
                ‘QQ‘:{},
            },
        }
    },
    ‘上海‘:{
        ‘浦东‘:{
            ‘陆家嘴‘:{
                ‘CICC‘:{},
                ‘高盛‘:{},
                ‘摩根‘:{},
            },
            ‘外滩‘:{},
        },
        ‘闵行‘:{},
        ‘静安‘:{},
    },
    ‘山东‘:{
        ‘济南‘:{
        },
        ‘德州‘:{
            ‘乐陵‘:{

            },
            ‘平原‘:{},
            ‘丁坞镇‘:{},
            ‘城区‘:{},
        },
        ‘青岛‘:{
        },
    }
}

current_layer = menu #实现动态循环
parent_layers = [] #保存所有父级,最后一个元素永远都是父级

while True:
    for key in current_layer:
        print(key)
    choice = input(‘>>>:‘).strip() #移除字符串头尾指定的字符(默认为空格)
    if len(choice) == 0:continue
    if choice in current_layer:
        parent_layers.append(current_layer) #在进入下一层之前,把当前层
        #(也就是下一层的父级)追加到列表中,下一次loop,当用户选择b,
        # 就可以直接取列表的最后一个值出来
        current_layer = current_layer[choice] #改成子层
    elif choice == ‘b‘:
        if parent_layers: #空列表False,非空列表为True
            current_layer = parent_layers.pop() #取出列表的最后一个值,因为就是当前层的父级
    else:
        ‘invalid input‘

原文地址:https://www.cnblogs.com/id19910408/p/8465253.html

时间: 2024-08-30 11:33:15

实例 - 购物车 (字典、循环)的相关文章

实例 - 购物车 (列表、循环)

salary = int(input('Please input your money:')) product = [ ('iphone6s',5800), ('mac bood',9000), ('coffee',32), ('python book',80), ('bicyle',1500), ] shopping = [] while True: #打印商品内容 n = 1 for i,v in product: print(n,'.',i,v) n += 1 #引导用户选择商品 choi

swift基本用法-for循环遍历,遍历字典,循环生成数组

// Playground - noun: a place where people can play import UIKit //------------------------------------------------------------------------------ // 1. for // 传统的for循环方式在swift中同样支持 var num = 0 for(var i = 0; i < 10 ; i++) { num += i } num //---------

python中使用自定义类实例作为字典的key

python中dict类型的key值要求是不可变类型,通常来说,我们一般采用int或者str类型来作为字典的key,但是在某些场景中,会造成一定的麻烦. 如我们有一个处理http Request的规则类名为Rule,其定义如下,它由一个Request path和其支持的Request methods数组组成: class Rule(object): def __init__(self, path, methods): assert(isinstance(path, str)) assert(is

复习 if条件 for序列 for字典 循环退出 while

if 条件 if 语法 - if expression statement(s) 注意:python 使用缩进作为其语句的分组方法,建议使用4个空格 if not 1 > 2 and 1 == 1:     print 'hello python'     print 'True' 这个例子中,逻辑非的优先级比较高 先执行: not 1 > 2 在执行: 1==1 if 10 < 2:     print 'hello python'     print 'True' else:    

前端学习代码实例-JavaScript文本循环变色效果

介绍一下如何实现一行文本实现一段文本内容能够滚动循环变色效果. 此效果可以有效的提高美观度,使用户的印象更加深刻,当然也就能够使网站更加能够留住用户. 代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> &

Python学习笔记五:字符串常用操作,字典,三级菜单实例

字符串常用操作 7月19日,7月20日 ,7月22日,7月29日,8月29日,2月29日 首字母大写:a_str.capitalize() 统计字符串个数:a_str.count("x") 输出字符,不够的使用指定的字符补上,字符居中:a_str.center(50,"-") 判断字符串以什么结尾:a_str.endwith("xx") 将字符串中的tab转换为指定数目的空格:a_str.expandtabs(tabsize=30) 查找指定字符

Shell中的循环语句实例

1.for循环语句实例1.1 最基本的for循环 #!/bin/bash for x in one two three four do     echo number $x done 注:"for" 循环总是接收 "in" 语句之后的某种类型的字列表.在本例中,指定了四个英语单词,但是字列表也可以引用磁盘上的文件,甚至文件通配符.实例1.2 #!/bin/bash for x in /var/log/* do     #echo "$x is a file

IOS中解决ARC类实例间循环引用(Swfit)

原创Blog,转载请注明出处 http://blog.csdn.net/column/details/swfitexperience.html 备注:本文代码和图片主要来自于官方文档 不熟悉ARC的同学可以看看前一篇关于ARC的简述,这个是我的Swfit教程专栏 http://blog.csdn.net/column/details/swift-hwc.html 一.几个用到的关键概念 弱引用(weak):不会增加自动引用计数,必须为可选类型变量,因为弱引用在引用计数为0的时候,会自动赋为nil

字典的循环

字典循环的方式: id_db ={1:"a", 2:"b", 3:"c", 4:"d"} 1.for k,v in id_db.items(): print (K,v) 效率较低,因为要有一个dict to list 的过程 2.for key in id_db: print(key,id_db[key])