PRODUCT_LIST = [
['iphone7',6500],
['macbook',12000],
['pythonbook',66],
['bike',999],
['coffee',31]
]
SHOPPING_CAR=[]
while True:
salary = input("salary:")
if salary.isdigit():
salary=int(salary)
break
else:
continue
while True:
print("\033[32;1m欢迎来到购物商城!\033[0m".center(50,"*"))
for index,i in enumerate(PRODUCT_LIST):
print(index,i)
continue
print("\033[32;1m祝您购物愉快!\033[0m".center(50, "*"))
choice = input("your choice is:")
if choice.isdigit():
choice=int(choice)
if choice > 0 and choice < len(PRODUCT_LIST):
p_ch = PRODUCT_LIST[choice]
if salary >= p_ch[1]:
salary -= p_ch[1]
SHOPPING_CAR.append(p_ch)
print("您选购的产品是:\033[31;1m[%s]\033[0m,您的余额还剩:\033[31;1m[%s]\033[0m"%(p_ch, salary))
else:
print("您的余额不足,您只有[%s]"%(salary))
else:
print("您输入的产品不存在!")
elif choice =="q":
choice2=(input("您要退出商品城吗?[y/n]:"))
if choice2 =="y":
print("\033[41;1m您购买的商品是:\033[0m".center(50,"*"))
for i in (SHOPPING_CAR):
print(i)
print("Your banlance salary is \033[31;1m%s\033[0m " % (salary))
elif choice2 == "n":
continue
else:
break
exit()

解释:

1,定义1个变量PRODUCT_LIST,来加载商品列表
2,定义1个变量SHOPPING_CAR,来加载已经购的商品
3,定义一个if语句,如果输入的钱数是正整数,那么就继续下面的步骤,不然就继续输入,用一个while循环保证一直输入
4,定义一个while循环,表示可以一直选择商品。
5,定义一个for循环,用enumerate格式把商品打印出来
6,并且打印一行文字“欢迎来到购物商城”等并添加颜色,后面也有添加颜色。
7,判断:输入的商品序号是否为正整数,如果是,继续
8,判断,如果输入的0<序号<商品种类,继续
否则,输出,“您输入的产品不存在”
9,判断所选商品的价格是否小于自己的钱数,
如果小于自己的钱数,输出:选择的产品,并且计算 出剩余钱数,否则,输出“您的余额不足,您只有..”
10.如果输入q,那么就进行判断,选择y或者n
如果选择n,那么就继续输入
如果选择y,那么,就打印出所购买的商品,和剩余的钱数。
11.退出

流控图:

Day2课后作业:购物车简单版的更多相关文章

  1. Day2课后作业:三级菜单简单版

    menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, '谷歌':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, 'youku':{ ...

  2. Day2课后作业:sed替换程序

    #!/usr/bin/env python #_*_conding:utf-8_*_ import sys,os old_file = sys.argv[1] new_file = sys.argv[ ...

  3. 吴恩达课后作业学习2-week1-2正则化

    参考:https://blog.csdn.net/u013733326/article/details/79847918 希望大家直接到上面的网址去查看代码,下面是本人的笔记 4.正则化 1)加载数据 ...

  4. 老男孩Day11作业:selectors版socket

    一.作业需求: 使用SELECT或SELECTORS模块实现并发简单版FTP 允许多用户并发上传下载文件 二.readme 一.作业需求: 使用SELECT或SELECTORS模块实现并发简单版FTP ...

  5. JavaMail简单版实验测试

    前言: 最近由于实现web商城的自动发送邮件功能的需求,故涉猎的邮箱协议的内部原理.现将简单版的Java Mail实例做个代码展示,并附上其中可能出现的bug贴出,方便感兴趣的读者进行测试! 1.载入 ...

  6. 小米抢购(简单版v0.1)-登录并验证抢购权限,以及获取真实抢购地址

    小米(简单版)-登录并验证抢购权限,以及获取真实抢购地址! 并不是复制到浏览器就行了的   还得传递所需要的参数 这里只是前部分  后面的自己发挥了 { "stime": 1389 ...

  7. String字符串类课后作业

    String动手动脑和课后作业 请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? 结果: 总结:在Java中,内容相同的字串常量(&quo ...

  8. JAVA第三周课后作业

    JAVA课后作业 一.枚举类型 代码: enum Size{SMALL,MEDIUM,LARGE}; public cl ass EnumTest { public static void main( ...

  9. java课后作业

    课后作业之字串加密: 设计思想: 1.输入要加密的英文子串str 2.定义num=str的字符串长度 3.将字符串转化为单个字符 4.每个字符+3,向后移3个 5.定义str1,将新得到的每个字符加到 ...

随机推荐

  1. 对于atomic nonatomic assign retain copy strong weak的简单理解

    atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作 1)atomic 设置成员变量的@property属性时,atomic是默认值,提供多线程安全 在多线程环 ...

  2. JavaWeb浏览器传值乱码

    在Java服务接口调用中,可能会出现乱码,如下图所示: 这是由编码不一致而致的乱码,可转,如下: name = new String(name.getBytes("ISO-8859-1&qu ...

  3. sqlserver锁表查看

    sp_lock--查询哪个进程锁表了,spid:进程ID,ObjId:对象ID EXEC sp_executesql N'KILL [spid]'--杀进程 select object_name([O ...

  4. Redis集群与事务

    redis集群对象JedisCluster不支持事务,但是,集群里面的每个节点支持事务 但是可以用第三方呀 启动下,然后看看事务问题: /usr/local/redis/bin/redis-serve ...

  5. map的详细用法 (转

    map的详细用法: map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能 力,由于这个特性,它完成有可能在我 ...

  6. SPOJ MAXOR (分块 || 可持久化字典树 || 异或)(好题)

    You are given a sequence A[1], A[2], ..., A[N]. (0 ≤ A[i] < 231, 1 ≤ N ≤ 12000). A query is defin ...

  7. AutoIt: 如何使用 AutoIt 解析,修改XML 文件

    项目组这次要发布一个项目,需要实施人员根据现场的机器情况,修改项目配置文件的几个节点,为了减轻实施人员的工作负担,我应用AutoIt写了一个小界面,实施人员只需在该界面上点几个按钮,就能够完成文件的配 ...

  8. PBE加密算法

    这是我参加全国信息安全大赛的设计的加密系统中的一个加密算法,虽然比赛的结果不是非常理想但是,我还是学到了很多东西,现在和大家分享一下,比赛收获的东西. 基于口令加密 PBE(Password Base ...

  9. 四、mysql数据常用命令

    1.显示mysql中所有数据库的名称,show databases; 2.访问某个数据库,use database_name; 3.显示当前数据库中所有表的名称,show tables; 4.查看当前 ...

  10. HDOJ-2034

    人见人爱A-B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...