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的更多相关文章
随机推荐
- Nginx linux下的安装
1.先把从官网 nginx.io下载 的安装包通过ftp传到服务器上,然后进行解压. 我的安装环境以及nginx版本 :Ubuntu16 ,nginx-1.11.3.tar.gz(经过这个尝试这个版本 ...
- 比反射更快!使用ASM获取class信息(ClassReader)
比反射更快!使用ASM获取class信息(ClassReader) 通常我们想要在java运行时获取class的信息时,通常使用反射的方式来获取其中的属性,方法,注解等信息.通常是这样的: Class ...
- Java代码 简单用于处理和数据库相关的操作
package util; import org.apache.commons.beanutils.BeanUtils; import java.lang.reflect.InvocationTarg ...
- CVE-2018-20169漏洞学习
简介 在4.19.9之前的Linux内核中发现了一个问题.USB子系统在读取与驱动程序/ USB /core/usb.c中的_usb_get_extra_descriptor相关的额外描述符时错误地检 ...
- Docker 添加容器SSH服务
很多时候我们需要登陆到容器内部操作,此时我们就需要开启容器的SSH支持了,下面的小例子将具体介绍三种分配IP地址的方法,分别是pipworl分配,commit分配,Docker分配等. 基于commi ...
- Redis利用Pipeline加速查询速度的方法
1. RTT Redis 是一种基于客户端-服务端模型以及请求/响应协议的TCP服务.这意味着通常情况下 Redis 客户端执行一条命令分为如下四个过程: 发送命令 命令排队 命令执行 返回结果 客户 ...
- java中内部类
package com.xt.instanceoftest; import com.xt.instanceoftest.Body.Heart; public class StaticInnerClas ...
- jQuery选择器引入
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 第十三篇 JS 操作table表格
JS 操作table表格 这节课难度可能高一点,因为没有提前解释if判断.for循环.这节课是直接把这两样用上了,老师先简单介绍一下: if,判断语句,判断就很简单了嘛,假如说1=1(1等于1),当然 ...
- TensorFlow入门——bazel编译(带GPU)
这一系列基本上是属于我自己进行到了那个步骤就做到那个步骤的 由于新装了GPU (GTX750ti)和CUDA9.0.CUDNN7.1版本的软件,所以希望TensorFlow能在GPU上运行,也算上补上 ...