需求如下:

  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. adb 命令集合

    1. adb shell 2. adb version 查看 adb 安装版本 3. adb start-server 启动服务 4. adb kill-server 杀死服务 5. adb get- ...

  2. OpenGL学习笔记1——第一个程序

    学习的参考书基本是按照GL编程指南,如果有消息机制概念,对于GLUT的理解是很自然的.下面就按照自己写的第一个程序详细解释一下GL,还是比较容易上手的. 程序实现的功能是,根据当前随即种子摇出来的结果 ...

  3. JVM & Server & Connector & Context Relationship

  4. jq 版的tab切换

    ta切换是在前端中非常常见的一种效果,网上的效果很多.但是我觉得下面这种方法最好,把tab效果封装成一个函数 tabs,这个函数要配合jq使用. var tabs = function (tab, c ...

  5. OAuth认证

    OAuth简介 OAuth是在不提供用户名和密码的情况之下,授权第三方应用访问Web资源的安全协议. OAuth允许用户提供一个令牌给第三方网站,一个令牌对应一个特定的第三方网站,同时该令牌只能在特定 ...

  6. Hibernate部署问题总结

    出现未知实体类(- org.hibernate.MappingException: Unknown entity),找不到cfg.xml包 (org.hibernate.internal.util.c ...

  7. sql 时间(datetime)计算

    SELECT *FROM sc_sowu_orderreturnWHERE STATUS = '0'AND submit_time < DATE_ADD(now(), INTERVAL - 4 ...

  8. 面试中遇到的iOS笔试题

    1.浅复制和深复制的区别? 2.类别的作用(category)?继承和类别在实现有何区别? 3.类别(category)和类扩展(extension)的区别. 4.obc中的协议和java中的接口概念 ...

  9. mybatis支持属性使用驼峰的命名

    数据库字段,我们一般都用下划线分隔 但是Model中的属性,一般用驼峰命名 如果需要自动映射,则配置mybatis-config.xml文件 <settings> <setting ...

  10. Tomcat安装后,远程IP无法访问的问题。

    我在使用阿里云与聚石塔的时候,发现Tomcat启动后,本地可以访问,但是外网无法访问,即使关闭防火墙也无法访问. 原因是 云平台的网络拦截. 阿里云:有一个入网规则 和 出网规则 ,流入数据端口  流 ...