在看视屏学习的过程中,有一个课堂练习,该练习结合了 列表 字符串 循环 if等基本内容。
该习题的要求如下:
①启动程序,输入用户的工资:
②之后系统自动打印一个 购物菜单
③然后用户开始选择商品,如果用户手中的钱能买到该商品则加入购物车;否则提示用户您的余额不足,并显示缺的钱
④循环③,直到用户输入q键,结束循环(卡壳在这了)
⑤打印购物车内容(卡壳在这),并且显示剩余内容
思路:很显然,商品和商品的价格都应该是一组数据,这样就使用list对其操作。在列表中存取;我的程序使用两个列表分别存商品与其对应的价格
之后进入循环。购物车也应当是一个列表,在我的设计中购物车列表存放商品和其价格(相邻的两个连续存放)
下面就是,用户选择商品
index=int(input('请输入你想买的物'))-1 #实现选择与确定索引从而在商品和价格列表中确定元素
用户输入1,就是第一个商品(以此类推) ;就建立了一种用户的选择和商品,价格列表索引值之间的一种表达式关系如上。
之后,判断所选商品的价格是否小于余额,大于则舍弃;
if money<price[index] : print('你的余额不足','差:',price[index]-money)
小于则加入购物车(关键是如何加入购物车:在我的程序中把商品名和其价钱加入购物车列表实现该操作)
else: print(goods[index],'已加入到购物车') money-=price[index] select_goods.append(goods[index]) #把选取商品加入购物车列表 select_goods.append(price[index]) #把选取商品的价格加入购物车列表
下面,卡壳的地方是如何跳出循环:(通过某个按键q)
Q=input('是否结束此次购物:') #卡壳 if(Q.lower()=='q'): #判断是否结循环使用break语句 lower() print('结束购物,您已经购买以下商品') break()
其中的lower()是将大小写字母都转换成小写字母。
>>> b'Hello World'.lower() b'hello world'
之后就是打印此时的购物车中的内容,遍历购物车列表即可,关键是如何确定购物车列表的长度:
1 num_of_select=len(select_goods) #求取此时购物车列表的长度 2 x=0 #x用来遍历数组 3 while x<num_of_select: #卡壳在这里,注意while为循环语句,if为条件判断语句 4 print(select_goods[x],select_goods[x+1]) #打印所选商品与价格 5 x+=2
综上,代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #_author_:'alex zhou' 2 # Time: 2018/8/27 0027 3 4 salary=int(input('请输入您的工资')) 5 print('您的工资为:',salary) 6 money=salary 7 8 goods=['iphone','macbook','coffee','pythonbook','bicycle'] 9 price=[5800,9000,32,80,1500] 10 select_goods=[] #新建一个购物车列表用来存入选取的商品 11 info='''**********购物菜单********** 12 1、iPhone 5800 13 2、macbook 9000 14 3、coffee 32 15 4、pythonbook 80 16 5、bicycle 1500 17 ''' 18 print(info) 19 20 while True: #循环购物 21 index=int(input('请输入你想买的物'))-1 #实现选择与确定索引从而在商品和价格列表中确定元素 22 if money<price[index] : 23 print('你的余额不足','差:',price[index]-money) 24 else: 25 print(goods[index],'已加入到购物车') 26 money-=price[index] 27 select_goods.append(goods[index]) #把选取商品加入购物车列表 28 select_goods.append(price[index]) #把选取商品的价格加入购物车列表 29 30 Q=input('是否结束此次购物:') #卡壳 31 if(Q.lower()=='q'): #判断是否结循环使用break语句 lower() 32 print('结束购物,您已经购买以下商品') 33 num_of_select=len(select_goods) #求取此时购物车列表的长度 34 x=0 #x用来遍历数组 35 while x<num_of_select: #卡壳在这里,注意while为循环语句,if为条件判断语句 36 print(select_goods[x],select_goods[x+1]) #打印所选商品与价格 37 x+=2 38 print('您的余额为:', money) 39 print('欢迎下次光临') 40 break
#视屏的做法下次添加