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. javascript学习的思维导图

    今天逛师父的博客园,发现了好东西~~~~我给偷过来了~~~那就是javascript学习的思维导图,比自己整理更快速. 思维导图小tips: 思维导图又叫心智图,是表达发射性思维的有效的图形思维工具 ...

  2. HDU2068 RPG的错排 —— 错排

    题目链接:https://vjudge.net/problem/HDU-2068 RPG的错排 Time Limit: 1000/1000 MS (Java/Others)    Memory Lim ...

  3. Zookeeper实现Master选举(哨兵机制)

    master选举使用场景及结构 现在很多时候我们的服务需要7*24小时工作,假如一台机器挂了,我们希望能有其它机器顶替它继续工作.此类问题现在多采用master-salve模式,也就是常说的主从模式, ...

  4. Partition算法及Partition算法用于快速排序

    JavaScript简单方便,所以用JavaScript实现,可以在Chrome控制台下观察运行结果.主要实现Partition算法,比如输入为   var array = [4, 2, 1, 3, ...

  5. BestCoder3 1001 Task schedule(hdu 4907) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4907 题目意思:给出工作表上的 n 个任务,第 i 个任务需要 ti 这么长的时间(持续时间是ti ~ ...

  6. Git基本用法1

    二.git的初始化 在使用git进行代码管理之前,我们首先要对git进行初始化. 1.Git 配置 使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名,每次提交记录 ...

  7. python 基础之第五天

    ###########window路径写法########## In [1]: winpath = 'C:\tmp' In [2]: print winpath C: mp In [3]: winpa ...

  8. 疯狂LCM

    传送门 题目要求求: \[\sum_{i=1}^nlcm(i,n)\] 先转化成gcd处理: \[n\sum_{i=1}^n\frac{i}{gcd(i,j)}\] 之后老套路 枚举gcd,并且先把d ...

  9. Gibonacci number-斐波那契数列

    Description In mathematical terms, the normal sequence F(n) of Fibonacci numbers is defined by the r ...

  10. 将List<T>集合用DataGridView展示

    一.若要将List<T>集合的值赋值给DataGridView,首先要DataGridView中的列的DataPropertyName的值要和此集合的T类型的属性字段的名称,类型一致,并且 ...