需求如下:

  1.

 #定义商品列表类
# def shangpin_list():
# for i in com_list:
# print(com_list.index(i),end=" ")
# for j in i:
# print(j,end=" ")
# print()
# else:
# return True #程序入口 salary = int(input("请输入您的工资:"))
com_list = [['iphone6s',5000],['mac book',9000],['coffee',32],['python book',80]]
shopping_cart_list = [] #购物车
cum_money = [] #账单
car_list = []
com_count = 0
while True:
if salary >= 0:
for i in com_list: #展示商品
print(com_list.index(i),end=" ")
for j in i:
print(j,end=" ")
print()
gm = input('''想买点啥?
输入商品编号即可购买,输入quit退出商城。
请输入》》》''') #开始购物
if gm != 'quit':
try:
gm = int(gm)
salary = salary - int(com_list[gm][1])
if salary >= 0:
com = com_list[gm][0] #购买的商品
com_money = com_list[gm][1]
shopping_cart_list.append([com,com_money]) #购买的商品
com_count = com_count+com_money
print('购买',com,'您需要支付',com_money,'元--->扣除后余额为:%d'%salary)
else:
print("余额不足,骚年快去挣钱吧!")
except ValueError or IndexError as err:
print("输入有误呕!")
else:
print( '本次您购买了以下商品,共计花费:%d元'%com_count)
for ij in shopping_cart_list:
print( '%s %s元'%((ij[0]),ij[1]))
else:
exit("您还有余额%d欢迎下次光临"%salary)
continue

购物车

 #!/user/bin/env python3
# -*- coding=utf-8 -*-
#__author__:gq
#date:2016/8/24 0024 dic = {'北京':{'昌平':['沙河','西二旗','西三旗'],'海淀':['圆明园']}, '河北':{'石家庄':['新华区'],'衡水':['老白干']},'广州':{'深圳':['华强北']}}
# for index in dic.items():
# print(index)
#一级菜单
def menu_1():
dic_01={}
while True:
print('一级菜单'.center(55,'#'))
for index,menu_name in enumerate(dic):
print(index,menu_name)
dic_01.setdefault(index,menu_name)
print(dic_01)
chose = input('输入菜单序号进入下级菜单,输入b反回上一级菜单')
if chose.isdigit():
chose = int(chose)
if dic_01.get(chose) == None:
print('没有这%s这个菜单项,请重新输入!'%chose)
continue
else:
#print(dic_01.get(chose))
menu_2(dic_01.get(chose))
elif chose == 'q':
print("程序退出")
else:
print("您的输入有误,请重新输入!") #二级菜单
def menu_2(name):
dic_2 = {}
while True:
flag = False
print("%s 二级菜单".center(55,'#')%name)
for index,menu in enumerate(dic[name]):
print(index,menu)
dic_2.setdefault(index,menu)
print(dic_2)
chose2 = input('输入菜单序号进入下级菜单,输入b反回上一级菜单,输入q退出')
if chose2.isdigit(): #判断用户输入的内容是否是数字样式
chose2 = int(chose2)
#print(dic_2.get(chose2))
if dic_2.get(chose2) == None:
print('没有这%s这个菜单项,请重新输入!'%chose2)
else:
print(dic_2.get(chose2))
flag = menu_3(name,dic_2.get(chose2))
if flag:
return True
else:
continue
elif chose2 == 'q': #用户输入‘q'则退出程序
print("程序退出")
elif chose2 == 'b': #用户输入'b'则反回上级菜单
break
else:
print("您的输入有误,请重新输入!") #三级菜单
def menu_3(name1,name2):
dic_3 ={}
while True:
print('%s 三级菜单'.center(55,'#')%name2)
for index3,menu3 in enumerate(dic[name1][name2]):
print(menu3)
dic_3.setdefault(index3,menu3)
print(dic_3)
chose3 = input('输入b反回上一级菜单,输入m反回主菜单,输入q退出')
if chose3 == 'q':
print("程序退出")
exit()
elif chose3 == 'm':
return True
elif chose3 == 'b':
return False
else:
print("您的输入有误,请重新输入!") while True:
menu_1()

三级菜单

 dic = {'北京':{'昌平':{'沙河':{},'回龙观':{},'巩华城':{}},
'海淀':{'圆明园'}},
'河北':{'石家庄':{'新华区'},
'衡水':{'老白干'}},
'广州':{'深圳':{'华强北'}}}
dic1 = dic
parent_list=[]
while True:
for i in dic1:
print(i)
choose = input('>>>').strip()
if len(choose)==0:continue
if choose in dic1:
parent_list.append(dic1)
dic1 = dic1[choose]
elif choose == 'b':
if parent_list:
dic1 = parent_list.pop()
else:
print("无此项")

三级菜单进化版

python 循环嵌套的更多相关文章

  1. [Python]循环嵌套nested loop-练习题

    [python的for循环嵌套打印如下图形] 图形一: ******* ******* ******* ******* 图形二: * *** ***** ******* 图形三: * *** **** ...

  2. Python循环嵌套

    可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环, 反之,你可以在for循环中嵌入while循环. 实例: 以下实例使用了嵌套循环输出3~13之间的素数: 以上实例输出结果: F ...

  3. Python基础之if判断,while循环,循环嵌套

    if判断 判断的定义 如果条件满足,就做一件事:条件不满足,就做另一件事: 判断语句又被称为分支语句,有判断,才有分支: if判断语句基本语法 if语句格式: if 判断的条件: 条件成立后做的事 . ...

  4. Python基础总结之第八天开始【while循环以及for循环,循环嵌套等循环相关的知识点】(新手可相互督促)

    ennnnn,年薪20万的梦想是不是又进了一步: 循环,什么是循环,循环就是电池有电,手机屏幕可以循环一整天的使用:循环就是地球不毁灭,太阳日复一日的出现...... 不接受反驳,谢谢!~ 只要条件满 ...

  5. 【python基础语法】多重循环嵌套,函数(第6天课堂笔记)

    1.什么是函数?函数有什么作用? 函数都是有特定功能的,都是由一些有特定功能的进行封装完成的 2.已经学过了哪些内置函数?分别有什么作用? print:输出 input:输入 type:查询数据类型 ...

  6. Python 三级菜单与优化(一层循环嵌套)

    优化的思路是使用单层循环嵌套完成三级菜单,这个优化思路我非常喜欢,我喜欢在编程的时候用最少的东西写出同样的效果,通常这样会绕来绕去,但非常有趣!!! 需求: 1.运行程序输出第一级菜单: 2.选择一级 ...

  7. python利用for..in遍历,while循环嵌套编译九九乘法表的几种模式

    运用for....in...遍历的四种方向的九九乘法表: 左下角: import sysfor i in range(1,10): for j in range(1,i+1): sys.stdout. ...

  8. python之路day04--列表的增删改查,嵌套、元组的嵌套、range、for循环嵌套

    列表增删改查 增加 append li = ['taibai','zy','nvshen'] li.append('aa') print(li) #['taibai', 'zy', 'nvshen', ...

  9. python循环语句详细讲解

    想必大家都知道python循环语句吧,可以python循环语句有多种,比如for循环.while循环.if.else等等,   我们可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下 ...

随机推荐

  1. c++容器

    1.vector:实质是动态堆数组,连续存储的内存区域,支持快速的随机访问. 2.list:实质是双向循环链表,支持在中间进行快速的插入删除,但是不能支持快速的随机访问.非连续的内存区域. 3.deq ...

  2. pthread 学习

    1. 创建线程 int pthread_create (pthread_t* thread, pthread_attr_t* attr, void* (*start_routine)(void*), ...

  3. WEBPACK开始

    这是一个非常简单的例子,通过这个例子你将学习到 1.How to install webpack 2.How to use webpack 3.How to use loaders 4.How to ...

  4. Linux CentOS 7通过yum命令安装Mono4.0.1

    前言 上一篇中提到的快照方式安装Mono,该方式并不稳定,需要做各种配置,各种修改才能与jexus搭配运行. 一.安装源 rpm --import "http://keyserver.ubu ...

  5. 类的高级:访问修饰符、封装、静态类成员static、内部类;

    访问修饰符: 公开访问(public):对所有子类,非子类访问: 受保护的(protected):只有同包子类.非子类.不同包子类可访问,不同包非子类不可访问: 私有的(private):只有本类可访 ...

  6. C# 禁止程序多个实例运行

    //program.cs    static class Program    {        /// <summary>        /// 应用程序的主入口点.        // ...

  7. 用CMake屏蔽Release运行时的控制台窗口

    在默认情况下,CMake构建的VS工程运行时会弹出控制台窗口,可以通过手动方式进行屏蔽,也可以通过CMake命令进行屏蔽. 手动方式:分为两步 第一步:右击VS项目,选择"属性"- ...

  8. jmc远程监控java服务

    简介 JMC(Java mission control)是JDK自带的一个图形界面监控工具,监控信息非常全面.他的安装目录在%JAVA_HOME%\bin\jmc.exe 最近JSTORM程序在集群环 ...

  9. mobx源码解读1

    mobx是redux的代替品,其本身就是一个很好的MVVM框架.因此花点力气研究一下它. 网上下最新的2.75 function Todo() { this.id = Math.random() mo ...

  10. css3新属性

    CSS calc()函数来制作响应式网格: calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,你可以使用calc()给元素的border.margin.pading.fo ...