购物车程序练习
今天我们来做一个购物车的程序联系,首先要理清思路
- 购物车程序需要用到什么知识点
- 需要用到哪些循环
- 程序编写过程中考虑值的类型,是int型还是字符串
- 如果值为字符串该怎么转成int型
- 用户如何选择到商品并把其加入购物车内(根据索引值)
- 明白购物车流程:先输入自己的rmb—列出商品的名称和价格(用列表实现)—输入用户选择的商品(根据索引值)—判断你的rmb是否足以支付商品的价格—如果是则加入购物车—如果否则提示余额不足—你可以无限制的购买商品(前提是钱足够)—如果不想购买可以输入值结束循环—输出购买的商品及余额
那么以上就是这个程序的思路,由于我也是第一次写这个程序,所以如果思路上有什么错误的地方,还请大家谅解,在最后我会放上源码供大家参考,那么现在就开始一起写代码叭!!
- 定义一个商品的列表
1 product_list = [ 2 ('iphone',5000), 3 ('coffee',31), 4 ('bicyle',888), 5 ('iwatch',2666), 6 ('Mac Pro',12000), 7 ('book',88) 8 ]
- 定义一个购物车列表,起初是空的,所以列表中为空
1 shopping_list = []#空列表,存放购买的商品
- 然后是输入你的rmb
1 salary = input("请输入你的工资:") 2 if salary.isdigit():# isdigit() 方法检测字符串是否只由数字组成,是则返回True,否则返回False 3 salary = int(salary)
这里用到了isdigit()方法,在这里稍作解释:
描述
Python isdigit() 方法检测字符串是否只由数字组成。
语法
isdigit()方法语法:
str.isdigit()
参数
无
返回值
如果字符串只包含数字则返回 True 否则返回 False。
实例
以下实例展示了isdigit()方法的实例:
1 #!/usr/bin/python 2 3 str = "123456"; # Only digit in this string 4 print str.isdigit(); 5 6 str = "this is string example....wow!!!"; 7 print str.isdigit();
输出结果为:
True
False
也就是说,如果你的字符串输入的是数字,那么返回的是True,正如我写的代码,用if来判断,如果我的rmb是数字,那么成立,可以继续循环,这里大家应该都能理解,当然,如果不是,代码为:
1 else: 2 print("输入错误")
当然,我整体的代码是一个大的框架,先要判断我输入的rmb是否为数字,如果是,那么将其转为int类型,如果不是则输出:“输入错误”然后再将其他代码写入我的这个大的框架中,写程序要有一个大的框架,在脑子里先定了型,这样写起来比较调理
- 接着是需要一个无限的循环
这个循环用到了 while True: 这样我就可以无限的去购买我心仪的物品,在其中添加一些其他的代码来丰富程序
先放一下其中的代码:
1 while True: 2 for index,i in enumerate(product_list):#index作为下标索引 3 print(index,i) 4 #enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 5 user_choice = input("请输入你要购买的商品:") 6 if user_choice.isdigit(): 7 user_choice = int(user_choice) 8 if user_choice < len(product_list) and user_choice >= 0: 9 product_choice = product_list[user_choice] 10 if product_choice[1] < salary:#买得起 11 shopping_list.append(product_choice)#买得起,就放入购物车 12 salary -= product_choice[1] 13 print("Add %s into your shopping_list,your balance is 33[31;1m%s 33[0m"%(product_choice,salary)) 14 else: 15 print("