day_work_02

------Python是一个优雅的大姐姐

作业一

设计思路(四个if一个while)

  1. 首先我先把商品用列表加元组的形式保存,然后将商品遍历出来。
  2. 键盘输入薪水。
  3. (if)判断输入薪水数据类型是否为数字:是!继续运行;否!打印“输入薪水不为数字!”退出程序。
  4. (while)循环开始
  5. (if)输入商品编号判断是否为数字:是!进行下一步;否则判断是否为q:是!打印购物车商品和余额,退出程序;否!打印“输入错误!”回到第四步。
  6. (if)判断编号是否可以找到对应商品:是!则进行下一步;否!则提示“不存在该商品编号!”回到第四步。
  7. (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('输入薪水不为数字!')

运行结果

作业二

设计思路

  1. 创建一个多级字典,输入相应数据。
  2. 设置三个变量,

exit_flag = False:终结循环的标志,本程序未设置退出程序操作。

current_layer = menu:

layers = [menu]:

  1. (while)进入while循环(未设置跳出循环操作)
  2. 遍历并输出字典current_layer中的key值
  3. 键盘输入key值,或者b操作
  4. (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的更多相关文章

随机推荐

  1. C++面试题整理(持续更新中)

    一. 内联函数和宏定义的区别 1.内联函数在运行时可调试,而宏定义不可以: 2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通类型),而宏定义不会: 3.内联函数可以访问类的成员变量,而 ...

  2. Spring 最常用的 7 大类注解,史上最强整理!

    随着技术的更新迭代,Java5.0开始支持注解.而作为java中的领军框架spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制spring框架. 而spring的的注解那 ...

  3. Luogu P4436 [HNOI/AHOI2018]游戏

    题目 我们要求出\(l_i,r_i\)表示\(i\)最远能够到达的最左边和最右边的格子. 首先有一个比较简单的暴力,就是每次我们选择一个格子,然后从当前格子开始往左右暴力扩展,找到能够到达的最远的格子 ...

  4. 微信小程序,预览在开发工具上显示正常,手机预览二维码报request->fail错误,打开手机的调试功能又正常。

    这里错误很明显是属于网址错误,开发工具和手机调试都能走request->success: 唯独常规模式下无法显示. 最开始调试过很多方法,没找出原因.最后到小程序开发设置才发现,自己未配置服务器 ...

  5. The Digits String

    https://ac.nowcoder.com/acm/contest/338/L 题解: 当n==1时,0-9填上的话,对4取余,分别是余数为0的3个,1的3个,2的2个,3的2个: 当n==2时, ...

  6. ajax调用,action返回的中文为乱码的解决方案

    原文:ajax调用,action返回的中文为乱码的解决方案 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.c ...

  7. 数据绑定-@RequestParam

    @PathVariable,前面已经讲过了 @RequestParam 作用:获取请求中的参数,GET请求,问号后面的请求参数,POST:请求体中的KV数据. 测试:

  8. 爬取快代理的免费IP并测试

    各大免费IP的网站的反爬手段往往是封掉在一定时间内访问过于频繁的IP,因此在爬取的时候需要设定一定的时间间隔,不过说实话,免费代理很多时候基本都不能用,可能一千个下来只有十几个可以用,而且几分钟之后估 ...

  9. 测试用例管理工具-TestLink

    TestLink是基于web的测试用例管理系统,主要功能是测试用例的创建.管理和执行,并且还提供了一些简单的统计功能,主要功能包括: 测试需求管理 测试用例管理 测试用例对测试需求的覆盖管理 测试计划 ...

  10. Freemarker生成word文档的时的一些&,>,<报错

    替换模板ftl中的内容的时候,一些特殊的字符需要转移,例如: &,<,> value为字符串 value.replace("&","& ...