salary = int(input('Please input your money:'))product = [('iphone6s',5800),('mac bood',9000),('coffee',32),('python book',80),('bicyle',1500), ]shopping = []while True:#打印商品内容n = 1for i,v in product:print(n,'.',i,v)n += 1#引导用户选择商品choice = input('选择购买商品编号:<退出:q>')#验证输入是否符合规范if choice.isdigit():choice = int(choice)if choice > 0 and choice <= len(product):#判断存款是否大于余额if salary > product[choice-1][1]:#计算余额,并将商品加入购物列表,并提示用户购买成功salary = salary - product[choice-1][1]shopping.append(product[choice-1][0])print('已加入%s到您的购物车,当前余额为:%s'%(product[choice-1][0],salary))else:print('余额不足,你的余额为:%d'%salary)else:print('编码不存在')#验证用户是否退出,并将购物车中内容打印elif choice == 'q':print('-'*10,'您已经购买如下商品','-'*10)for u in shopping:print(u)print('你的余额为:%d'%salary)breakelse:print('invalid input')
实例小结:
.isdigit()
描述:检测字符串是否只由数字组成
语法:str.isdigit()
返回值:如果字符串只包含数字则返回 True 否则返回 False
enumerate()
描述:enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
语法:enumerate(sequence, [start=0])
参数:sequence -- 一个序列、迭代器或其他支持迭代对象
start -- 下标起始位置
返回值:返回 enumerate(枚举) 对象
实例:
seasons = ['Spring', 'Summer', 'Fall', 'Winter']res1 = list(enumerate(seasons))res2 = list(enumerate(seasons,1))print(res1)print(res2)
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
for 循环使用 enumerate:
seq = ['one', 'two', 'three'] for i, element in enumerate(seq):print (i, seq[i])
0 one 1 two 2 three