老男孩14期第二周(购物车程序)
内容:
- 启动程序后,让用户输入工资,然后打印商品列表
- 允许用户根据商品编号购买商品
- 用户选择商品后,检测余额是否够,够就扣款,不够就提醒
- 可随时退出,退出时打印已购买的商品和余额
enumerate()函数的用法(参照代码中的用法)
字体高亮设置(\033[31;m+想要高亮的内容+\033[0m),其中31表示红色,32表示绿色,其余自行百度,41则表示红色的背景色)
一种书写方式:做判断时可以先整体思路先写出,if ... : pass else : .... 然后再补充True部分和False部分(这样思路会比较清晰)
exit()会直接退出循环,括号内可添加
goods = [
["Iphone", 5000],
["Compute", 4333],
["Bike", 800],
["Books", 50],
["My Pro", 9800],
["Camera", 6500],
]
lst = []
salary = int(input('\033[31;m请输入你的工资:\033[0m'))
while True:
for index, good in enumerate(goods):#enumerate()的用法,index是指下标(从0开始)
print(index, good)
nums = input("\033[31;m请输入想购买的商品编号:\033[0m")
if nums.isdigit(): # 判断nums是不是数字类型
nums = int(nums)
if len(goods) > nums >= 0: # 判断编号有没有超过上限
price = goods[nums][1]
product = goods[nums]
if salary >= price: # 判断能不能买起
salary -= price
lst.append(product)
print('\033[31;m当前商品购买成功\033[0m')
print('\033[33;m当前余额为:%s\033[0m' % salary)
else:
print("\033[31;1mYou balance is not enough!\033[0m\n" +
'----------shopping car-----------')
for i in lst:
print(i)
break
else:
print("The goods not exist!")
elif nums == 'q':
print('--------------shopping-----------')
for i in lst:
print('%s\t' % i)
exit()
else:
print('Input Error')
运行结果:
请输入你的工资:10000 0 ['Iphone', 5000] 1 ['Compute', 4333] 2 ['Bike', 800] 3 ['Books', 50] 4 ['My Pro', 9800] 5 ['Camera', 6500] 请输入想购买的商品编号:0 当前商品购买成功 当前余额为:5000 0 ['Iphone', 5000] 1 ['Compute', 4333] 2 ['Bike', 800] 3 ['Books', 50] 4 ['My Pro', 9800] 5 ['Camera', 6500]