需求:
1.启动程序后,让用户输入工资,然后打印商品列表
2.允许用户根据商品编号购买商品
3.用户选择商品后,检测余额时候够,够就直接扣款,不够就提醒
4.可随时退出,退出时,打印已购买商品和余额
python环境:3.6.5
知识点:if-else,for,while
代码:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Author:coding0820
'''
需求:
1.启动程序后,让用户输入工资,然后打印商品列表
2.允许用户根据商品编号购买商品
3.用户选择商品后,检测余额时候够,够就直接扣款,不够就提醒
3.可随时退出,退出时,打印已购买商品和余额
'''
#商品列表
product_list = [
('iPhone',5800),
('Mac Pro',9800),
('Bike',800),
('Watch',10600),
('Coffee',31),
('Ales Python',120)
]
#购物车
shopping_list = []
#输入工资
salary = input("Input your salary:")
#isdigit() 方法检测字符串是否只由数字组成。
if salary.isdigit():
#salary转换成int型
salary = int(salary)
#循环
while True:
#取product_list中商品下标和商品
#enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)
# 组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
for index,item in enumerate(product_list):
print(index,item)
print("q 退出")
# for item in product_list:
# print(product_list.index(item),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你的余额只有[%s],无法购买\033[0m" % salary)
else:
print("product code [%s] is not exist!" % user_choice)
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("该输入不是只由数字组成")