sys模块的问题,深浅COPY的应用场景,元祖与购物车程序练习-打印彩色\033[31;1m--------\033[0m
2017-08-10 21:47
295 查看
打印彩色:%s为变量,格式化
print("Added %s into shopping cart,your current balance is \033[31;1m%s\033[0m" %(p_item,salary) ) 想要红色用[31,绿色用[32,背景是红色是[41,背景的绿色是[42sys模块是C语言写的,所以在模块目录里是找不到sys.py这种模块的。浅COPY的意思,就是第二个列表的内容只是第一个列表的数值引用。浅COPY实现的三种方法:P1,P2为夫妻,他们的存款为子列表,那么如果P1,P2为浅COPY,那么修改任何一个人的存款,另外一个人的存款也同时修改。元祖tuple:只读列表语法:它是列表,但是不是中刮号了,而是圆刮号。names=("1","2","3")它只有2个方法,一个count,一个index比如你的程序启动了,你的数据库连接,可以写成元祖。这样数据库连接就不能改,并且更改就会报错!商品列表提示余额不足:退出界面:打印购买清单,以及余额enumerate函数的应用,自动把你的列表变成(下标,数值)的元祖列表:打印彩色:%s为变量,格式化
print("Added %s into shopping cart,your current balance is \033[31;1m%s\033[0m" %(p_item,salary) ) 想要红色用[31,绿色用[32,背景是红色是[41,背景的绿色是[42 最终代码以及解析:
#创建商品列表,每个商品都是一个元祖列表 product_list = [ ('Iphone',5800), ('Mac Pro',9800), ('Bike',800), ('Watch',10600), ('Coffee',31), ('Alex Python',120), ] #创建一个列表,购物车,临时变量 shopping_list = [] #让用户输入工资 salary = input("Input your salary:") #如果输入的是数字,那么才执行下一步 if salary.isdigit(): #将输入的数字的字符串,强制转换成数字整型 salary = int(salary) #进入死循环 while True: #将商品列表导出商品的索引数字以及商品元祖 for index,item in enumerate(product_list): #用这个方法也可以,就是比较low,速度效率低 #print(product_list.index(item),item) #打印出索引数字以及商品元祖列表 print(index,item) #让用户选择购买哪个商品 user_choice = input("选择要买嘛?>>>:") #如果用户输入的是数字类型的字符串 if user_choice.isdigit(): #将用户输入的数字型字符串强制转换成数字整型 user_choice = int(user_choice) #如果用户的选择小于商品列表的长度,大于等于0,其实这里len(product_list)也可以用index+1来替代 if user_choice < len(product_list) and user_choice >=0: #将用户选择的商品元祖赋值给p_item p_item = product_list[user_choice] #如果商品的价格小于等于工资 if p_item[1] <= salary: #买的起 #商品追加到字符串shopping_list,这个临时变量,购物车 shopping_list.append(p_item) #工资减去商品的价格 salary -= p_item[1] #提示用户已经将商品加入购物车,剩余的工资是多少钱 print("Added %s into shopping cart,your current balance is \033[31;1m%s\033[0m" %(p_item,salary) ) #如果商品的价格大于工资,那么提示购买不成功 else: print("\033[41;1m你的余额只剩[%s]啦,还买个毛线\033[0m" % salary) #如果用户输入的数字大于商品列表的个数,那么提示购买的商品不存在,在这里就是输入大于等于6的商品标号。 else: print("product code [%s] is not exist!"% user_choice) #用户输入q来退出程序,用exit来退出脚本 elif user_choice == 'q': print("--------shopping list------") #打印购买的商品清单 for p in shopping_list: print(p) #打印剩余的工资 print("Your current balance:",salary) #退出脚本 exit() #如果用户商品选择的时候输入的是除数字以外的字符,那么提示输入错误 else: print("invalid option") #如果用户在工资那边瞎输入,提示错误 else: print("invalid option")
相关文章推荐
- 树莓派练习程序(避障模块)
- 应用 Valgrind 发现 Linux 程序的内存问题
- c# 程序设计及应用教程上机A.2.4————数组排序和计算练习(Console)
- 应用 Valgrind 发现 Linux 程序的内存问题 [转]
- 山东理工ACM【1135】C/C++经典程序训练5---图形打印问题
- c程序(打印日历、数转成素数乘积、猜随机数、九宫格,汉诺塔问题、main中命令行参数)
- 第三周作业:程序模块开发遇到的问题及部分解决办法
- GDI+在Delphi程序的应用 – 真彩色图像转索引图像
- 浅析Microsoft .net PetShop程序中的购物车和订单处理模块(Profile技术,异步MSMQ消息) 选择自 wangyihust 的 Blog
- OJ (1967): C/C++经典程序训练5---图形打印问题
- C/C++经典程序训练5---图形打印问题
- Unity场景问题,以及老程序DontDestory问题
- 微信小程序示视频应用场景例利用腾讯云仅限开发案例四
- ESP8266-12F模块上电打印一条乱码后无响应的问题分析与解决
- 应用 Valgrind 发现 Linux 程序的内存问题
- 应用 Valgrind 发现 Linux 程序的内存问题
- 应用 Valgrind 发现 Linux 程序的内存问题
- C程序设计语言,练习1-13,编写一个程序,打印输入单词的直方图(垂直方向)
- 浅析Microsoft .net PetShop程序中的购物车和订单处理模块(Profile技术,异步MSMQ消息)
- 高性能Web服务器Nginx的配置与部署研究(11)应用模块之Memcached模块的两大应用场景