需求:
1、启动程序后,让用户输入工资,然后打印商品列表
2、允许用户根据商品编号购买物品
3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
4、可随时退出,退出时打印已购买商品和余额
代码自己纯手打,可能会有手误
#新建商品列表
product_list = [
('iphone', 4500),
('macbook', 9800),
('bicycle', 200),
('coffee', 31),
('《巴比龙》', 21),
('guitar', 2500)
]
#新建购物车列表
shopping_list = []
salary = input('input your salary:')
#判断用户输入salary是否是整数
if salary.isdigit():
salary = int(salary)
while True:
#循环打印商品列表
for index, item in enumerate(product_list):
print(index, item)
user_choice = input('请确认是否要购买?>>>:')
#判断用户输入的商品编号是否整数格式
if user_choice.isdigit():
user_choice = int(user_choice)
#判断用户输入的数字商品编号是否在列表中
if user_choice < len(product_list) and user_choice >= 0:
p_item = product_list[user_choice]
#判断余额是否能够支付商品的价格
if p_item[1] <= salary:
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您的余额不足,还买个屁啊!\033[0m')
else:
print('product code [%s] is not exist' %user_choice)
elif user_choice == 'q':
#用户输入q退出:打印已购商品列表、余额,退出程序
print('----------shopping list---------')
for item in shopping_list:
print(item)
print('your current salary is:',salary)
exit()
else:
print('invalid option')
else:
print('invalid salary input')
exit()
几个知识点
1、isdigit():判断输入(str)是否是整数格式,可用于下一步强制转换
2、enumerate:
可以取出列表下标
for index,item in enumerate(product_list):
print(index, item)
3、改变颜色
\033[31;1m内容\033[0m
31红色字体,41红色背景,固定格式,死记硬背