# 一、元素分类
# 有如下值集合[11, 22, 33, 44, 55, 66, 77, 88, 99, 90...],将所有大于
#
# 的值保存至字典的第一个key中,将小于
#
# 的值保存至第二个key的值中。
# 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
# a = [11,22,33,44,55,66,77,88,99]
# b = []
# c = []
# dict = {"k1":b,"k2":c}
# for i in a:
# if i >66:
# b.append(i)
# if i <66:
# c.append(i)
# print(dict)
# 二、查找
# 查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有元素。
# li = ["alec", " aric", "Alex", "Tony", "rain"]
# tu = ("alec", " aric", "Alex", "Tony", "rain")
# dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
# for i in li:
# i = i.strip()
# if (i.startswith('A') or i.startswith('a')) and i.endswith('c') :
# print(i)
# for i in tu:
# i = i.strip()
# if (i.startswith('A') or i.startswith('a')) and i.endswith('c') :
# print(i)
# for i in dic.values():
# i = i.strip()
# if (i.startswith('A') or i.startswith('a')) and i.endswith('c'):
# print(i)
# 三、输出商品列表,用户输入序号,显示用户选中的商品
# 商品
# li = ["手机", "电脑", '鼠标垫', '游艇']
# while True:
# choice=int(input('请输入序号:'))
# print(li[choice])
# 四、购物车
# 功能要求:
# 要求用户输入总资产,例如:2000
# 显示商品列表,让用户根据序号选择商品,加入购物车
# 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
# 附加:可充值、某商品移除购物车
# goods = [
# {"name": "电脑", "price": 1999},
# {"name": "鼠标", "price": 10},
# {"name": "游艇", "price": 20},
# {"name": "美女", "price": 998},
# ]
# shopping_cart=[]
# flag=True
# sum=0
# while flag:
# money=input("请输入您的账户金额:").strip()
# if money.isdigit():
# money=int(money)
# print("商品列表:")
# while flag:
# for i in range(len(goods)):
# print(i+1,goods[i]["name"],goods[i]["price"])
# choice=input("请选择您需要购买的商品或退出(q):").strip()
# num=0
# if choice.isdigit():
# choice=int(choice)
# choice=choice-1
# if choice >=0 and choice <len(goods):
# if money > goods[choice]['price']:
# product=goods[choice]
# if product in shopping_cart:
# num+=1
# else:
# shopping_cart.append(product)
# money = money - goods[choice ]["price"]
# sum+=goods[choice ]["price"]
# print("购买成功,您购买了"+goods[choice]['name'],'您还剩'+str(money)+'元钱')
# elif money<goods[choice]['price']:
# print("对不起,您的账户余额不足!")
# flag=False
# else:
# print('商品不存在')
# continue
# elif choice.lower()=='q':
# print('---购物清单---:')
# for k,v in enumerate(shopping_cart,1):
# print(k,v['name'],v['price'],num)
# print('共消费'+str(sum)+'元'+'\n您的余额是'+str(money)+'元'+'\n---结束购物---')
# flag=False
# else:
# print('请输入数字或q')
# continue
# else:
# print('请输入数字')
# continue
# 选做题:用户交互,显示省市县三级联动的选择
dic = {
"河北": {
"石家庄": ["鹿泉", "藁城", "元氏"],
"邯郸": ["永年", "涉县", "磁县"],
},
"河南": {
'a':[1,2,3],
'c':[4,5,6] },
"山西": {
'd':[7,8,9],
'e':[10,11,12]
}
}
# 第一种
# flag=True
# while flag:
# for i in dic:
# print(i)
# choice1=input('>>:').strip()
# if choice1.upper()=='Q':
# break
# next1=dic[choice1]
# for j in next1:
# print(j)
# while flag:
# choice2=input('>>:').strip()
# if choice2.upper()=='Q':
# break
# if choice2.upper()=='B':
# flag=False
# break
# next2=next1[choice2]
# for z in next2:
# print(z)
# choice3 = input('>>:').strip()
# if choice3.upper()=='Q':
# flag=False
# break
# if choice3.upper()=='B':
# continue
exit_flag = False
while not exit_flag:
for key in dic:
print(key) choice = input(">:").strip()
if len(choice) == 0 : continue
if choice == 'q':
exit_flag = True
continue
if choice in dic: #省存在,进入此省下一级
while not exit_flag:
next_layer = dic[choice]
for key2 in next_layer:
print(key2)
choice2 = input(">>:").strip()
if len(choice2) == 0: continue
if choice2 == 'b': break
if choice2 == 'q':
exit_flag = True
continue
if choice2 in next_layer: #再进入下一层
while not exit_flag:
next_layer2 = next_layer[choice2]
for key3 in next_layer2:
print(key3)
choice3 = input(">>>:").strip()
if len(choice3) == 0: continue
if choice3 == 'b': break
if choice3 == 'q':
exit_flag = True
continue if choice3 in next_layer2:
while not exit_flag:
next_layer3 = next_layer2[choice3]
for key4 in next_layer3:
print(key4) choice4 = input(">>>>:").strip()
if choice4 == 'b':break
if choice4 == 'q':
exit_flag = True
continue # 第二种
# current_layer=dic
# layers=[dic]
# while True:
# for i in current_layer:
# print(i)
# choice=input('>>>:').strip()#用户输入选项
# #判断输入是否有效
# if choice in current_layer:
# layers.append(current_layer)#把当前层菜单添加到全部层,用于返回上一级使用
# current_layer=current_layer[choice]#把当前层替换新的
# elif choice.upper()=='B':
# current_layer=layers[-1]
# layers.pop()
# elif choice.upper()=='Q':
# break

s5_day3作业的更多相关文章

  1. python10作业思路及源码:类Fabric主机管理程序开发(仅供参考)

    类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线 ...

  2. SQLServer2005创建定时作业任务

    SQLServer定时作业任务:即数据库自动按照定时执行的作业任务,具有周期性不需要人工干预的特点 创建步骤:(使用最高权限的账户登录--sa) 一.启动SQL Server代理(SQL Server ...

  3. 使用T-SQL找出执行时间过长的作业

        有些时候,有些作业遇到问题执行时间过长,因此我写了一个脚本可以根据历史记录,找出执行时间过长的作业,在监控中就可以及时发现这些作业并尽早解决,代码如下:   SELECT sj.name , ...

  4. T-SQL检查停止的复制作业代理,并启动

        有时候搭建的复制在作业比较多的时候,会因为某些情况导致代理停止或出错,如果分发代理时间停止稍微过长可能导致复制延期,从而需要从新初始化复制,带来问题.因此我写了一个脚本定期检查处于停止状态的分 ...

  5. Python09作业思路及源码:高级FTP服务器开发(仅供参考)

    高级FTP服务器开发 一,作业要求 高级FTP服务器开发 用户加密认证(完成) 多用户同时登陆(完成) 每个用户有不同家目录且只能访问自己的家目录(完成) 对用户进行磁盘配额,不同用户配额可不同(完成 ...

  6. 个人作业week3——代码复审

    1.     软件工程师的成长 感想 看了这么多博客,收获颇丰.一方面是对大牛们的计算机之路有了一定的了解,另一方面还是态度最重要,或者说用不用功最重要.这些博客里好些都是九几年或者零几年就开始学习编 ...

  7. 个人作业-week2:关于微软必应词典的案例分析

    第一部分 调研,评测 评测基于微软必应词典Android5.2.2客户端,手机型号为MI NOTE LTE,Android版本为6.0.1. 软件bug:关于这方面,其实有一些疑问.因为相对于市面上其 ...

  8. 软件工程第二次作业——git的使用

    1. 参照 http://www.cnblogs.com/xinz/p/3803109.html 的第一题,每人建立一个GitHub账号,组长建立一个Project,将本组成员纳入此Porject中的 ...

  9. hadoop作业调度策略

    一个Mapreduce作业是通过JobClient向master的JobTasker提交的(JobTasker一直在等待JobClient通过RPC协议提交作业),JobTasker接到JobClie ...

随机推荐

  1. 善用php-fpm的慢执行日志slow log,分析php性能问题

    众所周知,mysql有slow query log,根据慢查询日志,我们可以知道那些sql语句有性能问题.作为mysql的好搭档,php也有这样的功能.如果你使用php-fpm来管理php的话,你可以 ...

  2. linux—mysql安装步骤

    一.检查系统中是否已经安装过mysql. rpm -qa | grep mysql 如果存在,则需要删除. yum -y remove mysql* 继续检查一下是否还存在mysql rpm -qa ...

  3. 如何使用 PsExec 执行远程命令

    前言 这紧紧只是一篇纯技术分享.我们的程序在运行时需要连接多台目标机器,并拷贝目标机器上特定文件夹中的文件.为了方便访问,要在每台目标机器上建立一个特定用户,所以 PsExec 成了实现此功能的一个方 ...

  4. python read文件内容的iter方式

    遍历file的方式 iter(lambda: f.read(4096), "")等价与while True: data = f.read(4096) if not data: br ...

  5. 第一百四十五节,JavaScript,同步动画

    JavaScript,同步动画 将上一节的,移动透明动画,修改成可以支持同步动画,也就是可以给这个动画方法多个动画任务,让它同时完成 原理: 向方法里添加一个属性,这个属性是一个对象,同步动画属性,属 ...

  6. Redmin 一键安装

    一.介绍 Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,据说是源于Basecamp的ror版而来,支持多种数据库,有不少自己独特的功能,例如提供 ...

  7. MathType可以编辑带圈乘号吗

    在数学中有很多符号,可能这些符号我们用得上,也有些符号我们很少用,甚至用不上,但是我们用不上,不代表不存在这个符号,也不代表别人用不上,只是各自所涉及到的知识领域不一样而已.而对于加减乘除运算,几乎每 ...

  8. 用原生JS模仿jquery,需要HTML5的支持

    jQuery是现在最流行的JavaScript工具库. 据统计,目前全世界57.3%的网站使用它.也就是说,10个网站里面,有6个使用jQuery.如果只考察使用工具库的网站,这个比例就会上升到惊人的 ...

  9. 在ubuntu机器上部署php测试环境

    在ubuntu机器上部署php测试环境 一.部署环境 Ubuntu11.10_X86_32,编译安装相应的软件:nginx+mysql+php. 二.软件安装 2.1 软件下载 libiconv-1. ...

  10. Windows下将gvim8配置为Python IDE

    目录 1.准备工作 2.安装 3.配置 _vimrc 4.编写和编译运行程序 正文 Windows下将gvim配置为Python IDE 回到顶部 1.准备工作 将下面的安装包或者文件下载好 1) P ...