购物清单
#!/usr/bin/env python #coding:UTF-8 #Python 2.7.x 环境 '购物清单' import sys shoopping = 1 cash_error = 0 user_can_buy = 0 already_buy = 0 continue_to_buy = 'y' already_buy_goods = [] name = {'a':'Apple(a)','b':'Beef(b)','c':'Cigarette(c)','d':'Drinking(d)','p':'P9(p)',} Existing_products = {'Apple(a)': 50, 'Beef(b)': 100, 'Cigarette(c)': 200, 'Drinking(d)': 500, 'P9(p)': 3000} min_price = min(Existing_products[i] for i in Existing_products) #求单价最小值 #print min_price while shoopping == 1: #保证用户输入的信息正确,并不重复空输入3次 total_cash = raw_input('请输入您的现金数量:').strip() users_cash = total_cash if len(users_cash) == 0: cash_error += 1 if cash_error < 3: Re_enter = raw_input('您的输入有误,是否重新输入:(y or n)').strip() elif Re_enter == 'n' or cash_error == 3: #print '欢迎下次光临,再见!' #sys.exit() shoopping = 0 else: continue #在现金正确的情况下,判断是否足够可以购买商品 if len(users_cash) != 0: cash_error = 0 print '现有商品信息为:' for k,v in Existing_products.items(): print '商品名称:%-15s商品价格:%-4s' % (k,v) if int(users_cash) < min_price : Re_enter_cash = raw_input('您的现金太少,是否重新输入现金数量:(y or n)') if Re_enter_cash == 'n': #print '欢迎下次光临,再见!' #sys.exit() shoopping = 0 else: continue #可以购买商品的情况下打印可以购买的商品的清单 else: users_cash = int(users_cash) while users_cash >= min_price and shoopping != 2: print '你现在的现金剩余为:%s' % users_cash print '您可以购买的商品为:' for k,v in Existing_products.items(): if v <= users_cash: print '商品名称:%-15s商品价格:%-4s' % (k,v) if already_buy == 1 : continue_to_buy = raw_input('是否继续购物(y or n):').strip() if continue_to_buy == 'n': shoopping = 2 if continue_to_buy != 'n': need_to_buy_goods = raw_input('请输入您要购买的商品的名称代码,一次只能购买一件:').strip() if name.has_key(need_to_buy_goods): print '您已经购买:%s' % name.get(need_to_buy_goods) already_buy_goods.append(name.get(need_to_buy_goods)) #print already_buy_goods already_spent = int(Existing_products.get(name.get(need_to_buy_goods))) users_cash -= already_spent already_buy = 1 else: print '您输入的商品信息有误' continue if users_cash < min_price: print '你剩余的金额为:%s' % users_cash , '剩余金额已不足' shoopping = 2 #打印购物清单 if shoopping == 2: #打印购物清单 already_buy_goods_set = set(already_buy_goods) print '\n''\n' print '您的购物清单为:' print '-------------------------------' print ''' %-19s%-12s%-10s ''' % ('商 品 名 称','数 量','总 价') for goods in already_buy_goods_set: goods_number = already_buy_goods.count(goods) goods_total_cost = goods_number * Existing_products.get(goods) print ''' %-15s%-10s%-10s''' % (goods,goods_number,goods_total_cost) print '===============================' print '此次共消费:%s' % (int(total_cash) - users_cash) print '剩余现金为:%s ' % users_cash shoopping = 0 #退出系统 if shoopping == 0: print '-------------------------------' print '欢迎下次光临,再见!' print '\n' sys.exit()