day_work_02
day_work_02
------Python是一个优雅的大姐姐
作业一
设计思路(四个if一个while)
- 首先我先把商品用列表加元组的形式保存,然后将商品遍历出来。
- 键盘输入薪水。
- (if)判断输入薪水数据类型是否为数字:是!继续运行;否!打印“输入薪水不为数字!”退出程序。
- (while)循环开始
- (if)输入商品编号判断是否为数字:是!进行下一步;否则判断是否为q:是!打印购物车商品和余额,退出程序;否!打印“输入错误!”回到第四步。
- (if)判断编号是否可以找到对应商品:是!则进行下一步;否!则提示“不存在该商品编号!”回到第四步。
- (if)判断余额是否足够购买商品:是!将商品加入购物车,余额减少;否!打印“余额不足!”,返回第四步。
运行代码
# Author:Xiong
product_list=[
('iphone6s',5800),
('macbook',9000),
('coffee',30),
('python book',80),
('bicyle',1500),
]
shopping_car = []
salary = input('请输入您的薪水:')
for i,v in enumerate(product_list,1):
print(i,v[0],v[1])
if salary.isdigit():
save = int(salary)
while True:
ch = input('输入您需要购买的商品编号[q退出]')
if ch.isdigit():
ch = int(ch)
if ch>0 and
ch <= len(product_list):
if product_list[ch-1][1] > save:
print('余额不足,',save
- product_list[ch-1][1])
else:
save -=
product_list[ch-1][1]
print('购买%s成功!当前余额%d'%(product_list[ch-1],save))
shopping_car.append(product_list[ch-1])
else:
print('不存在该商品编号!')
elif ch == 'q':
print('购买商品为%s' %
shopping_car)
print('余额为%d' %
save)
print('欢迎下次光临!')
break
else:
print('输入错误!')
else:
print('输入薪水不为数字!')
运行结果
作业二
设计思路
- 创建一个多级字典,输入相应数据。
- 设置三个变量,
exit_flag = False:终结循环的标志,本程序未设置退出程序操作。
current_layer = menu:
layers = [menu]:
- (while)进入while循环(未设置跳出循环操作)
- 遍历并输出字典current_layer中的key值
- 键盘输入key值,或者b操作
- (if)判断键盘输入的choice是否为‘b’:是!进行返回上一级操作;否!判断是否是字典current_layer中的key值:否!返回本层字典的输入界面;是!进入下一层字典。
运行代码
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
}
exit_flag = False
current_layer = menu
layers = [menu]
while not
exit_flag:
for k in current_layer:
print(k)
choice = input(">>(输入b返回上一级):").strip()
if choice
== "b":
current_layer = layers[-1]
layers.pop()
elif choice
not
in current_layer:continue
else:
layers.append(current_layer)
current_layer =
current_layer[choice]
运行结果
day_work_02的更多相关文章
随机推荐
- 搞懂MySQL GTID原理
从MySQL 5.6.5 开始新增了一种基于 GTID 的复制方式.通过 GTID 保证了每个在主库上提交的事务在集群中有一个唯一的ID.这种方式强化了数据库的主备一致性,故障恢复以及容错能力. GT ...
- excel批量修改文件名称
步骤: 1. 然后将标准号所在的列复制三份到旁边相邻的空白列 2. 使用方方格子让三列中最左面的列只保存如下格式的数据: DB37/T或DB37/ 3. 使用方方格子让三列中中间的列的只保存如下格式的 ...
- 2019年8月23日 星期五(Workerman)
Workerman,高性能socket服务框架 Workerman是什么? Workerman是一款纯PHP开发的开源高性能的PHP socket 服务框架. Workerman不是重复造轮子,它不是 ...
- 从入门到自闭之Python三大器--生成器
1.什么是生成器 核心:生成器的本质就是一个迭代器 迭代器是python自带的的 生成器是程序员自己写的一种迭代器 编写方式: 基于函数编写 推导式编写 def func (): print(&quo ...
- Codeforces 1201E2. Knightmare (hard)
传送门 看到棋盘先黑白染色冷静一下 然后分析发现,如果初始时两只马在同色的格子,那么一定是后手吃先手 反之一定是先手吃后手 所以分类讨论一下,如果初始在同色的格子,并且后手到达终点的步数更少,那么后手 ...
- 第十七篇 JS验证form表单
JS验证form表单 这节课做一个实际的,项目里会遇到的东西,例如登录页面,我们输入‘用户名’和‘密码’或者‘手机号’还有‘验证码’等等,它都会做一个前端验证,比如验证码,是6位有效数字组成,那么 ...
- LeetCode——回文链表
题目 给定一个链表的头节点head,请判断该链表是否为回 文结构. 例如: 1->2->1,返回true. 1->2->2->1,返回true. 15->6-> ...
- 记一次nodemanager无法启动的情况
早上看CDH发现有一个nodemanager挂掉 然后查看对应的日志. 发现在日志里面并没有错误.,然然后发现服务器的磁盘满了,赶紧清理磁盘空间 清理磁盘的时候发现主要是/tmp目录下面生成了很多 ...
- php函数之strtr和str_replace的区别
php字符串替换函数 strtr()有两种用法: strtr(string,from,to) 或者strtr(string,array) 首先针对strtr函数第一种方式: 我们看看下面的举例: &l ...
- MySQL select之后再update
1.先查询页面 而后再根据查询的结果来更改数据库,可以使用SELECT …… FOR UPDATE 来实现,具体的代码如下 SELECT * FROM chat //查询的表 //查询的条件 FOR ...