一个商品练习的py


#!/usr/bin/env python
# coding=utf-8
# by 星空刺
qian = int(raw_input("请输入当前money:"))
gongzi = int(raw_input("请输入当前工资:"))
d1 = {}
d2 = {}
d3 = {}
d1 = {'自行车':100,'汽车':1000,'电脑':500}
for k,v in d1.items():
    print "%s:%s" %(k,v)
    if v <= qian:
        d2.update({k:v})
    else:
        d3.update({k:v})
print "你所不能购买的商品如下:"
for k,v in d3.items():
    print "%s:%s" %(k,v)
print "以下是你能购买的商品:"
for k,v in d2.items():
    print "%s:%s" %(k,v) 
while 1:
    name = raw_input("请输入要购买的商品名字:")
    name_jiage = d1.get(name)
    if d2.has_key(name) and qian >= name_jiage:
        qian = qian - name_jiage
        print "已经购买%s:%s,当前余额%d" %(name,name_jiage,qian) 
    else:
        chazhi = name_jiage - qian
        n = ( chazhi ) / gongzi
        if ( name_jiage - qian ) % gongzi > 0:
            n = n + 1
        print "你的钱不够,还差%d元,你需要赚取%d次工资才能购买" %(chazhi,n)
        break

 

 

好吧,依然没有用list...虽然它却是是list练习

shell版本:http://www.cnblogs.com/aaa103439/p/3774369.html


 

添加批量购买,购物车,返回操作.

#!/usr/bin/env python
# coding=utf-8
# by 星空刺
# 2014.06.09
import sys
qian = int(raw_input("请输入当前money:"))
gongzi = int(raw_input("请输入当前工资:"))
#商品菜单
d1 = {}
#可购买商品
d2 = {}
#不可购买商品
d3 = {}
#已购买商品
d4 = {}
#商品菜单
d1 = {'自行车':100,'汽车':1000,'电脑':500}
#构建可购买商品字典和不可购买商品字典
for k,v in d1.items():
    print "%s:%s" %(k,v)
    if v <= qian:
        d2.update({k:v})
    else:
        d3.update({k:v})
print "你所不能购买的商品如下:"
for k,v in d3.items():
    print "%s:%s" %(k,v)
print "以下是你能购买的商品:"
for k,v in d2.items():
    print "%s:%s" %(k,v) 
#商品购买循环
while 1:
    name = raw_input("请输入要购买的商品名字:")
    name_num = int(raw_input("请输入购买次数:"))
#获取购买商品的价格
    name_jiage = d1.get(name)
    name_zongjia = name_jiage * name_num
#判定商品是否存在以及钱是否够,并计算余额
    if d1.has_key(name) and qian >= name_jiage:
        qian = qian - name_zongjia
#若钱不够,则计算差额,并继续所需工资的倍数,若倍数是小数,则+1
    else:
        chazhi = name_zongjia - qian
        n = ( chazhi ) / gongzi
        if chazhi % gongzi > 0:
            n = n + 1
        print "你的钱不够,还差%d元,你需要赚取%d次工资才能购买" %(chazhi,n)
        qian = -chazhi
#若购买的商品已在商品篮,则将其对应商品总价相加
    if d4.has_key(name):
        d4[name] = name_zongjia + d4.get(name)
#若购买商品不存在,则将其加入字典d4
    else:
        d4.update({name:name_zongjia})
    print "已添加%d件%s:%s,当前余额%d" %(name_num,name,name_jiage,qian) 
    print "当前购物车有如下商品:"
    for k,v in d4.items():
        print "%s:%s" %(k,v)
    ans = raw_input("是否购买其他商品,是y,不是n:")
    if ans == "y":
        continue
    else:
        break
print ("以下是你购买车内的商品:")
for k,v in d4.items():
    print "%s:%s" %(k,v)
ans = raw_input("是否确认购买y,或者删除某件商品d,或者取消购买n:")
if ans == "y":
    print "你的当前余额为%d" %qian
elif ans == "d":
#开始删除循环
    while 1:
        name_tui = raw_input("输入删除的商品名:")
        name_tui_num = int(raw_input("输入删除的商品件数:"))
#计算对应商品的总退价
        name_tui_jiage = d1.get(name_tui) * name_tui_num
#如果商品存在,则回款
        if d4.has_key(name_tui):
            qian = qian + name_tui_jiage
    #如果商品存在,且要清空对应商品,则删除字典d4的对应商品
            if d4.get(name_tui) == name_tui_jiage:
                d4.pop(name_tui)
    #否则降低字典d4内对应商品的总价值
            else:
                d4[name_tui] = d4.get(name_tui) - name_tui_jiage
        print "当前余额为%d,商品篮如下:" %qian
        for k,v in d4.items():
            print "%s:%s" %(k,v)
        ans1 = raw_input("是否继续删除y,或者保留剩余商品并购买n:")
        if ans1 == "y":
            continue 
        else:
            break
elif ans == "n":
    for v in d4.values():
        qian = qian + v
    print "已经清空商品篮,你的当前余额是%d:" %qian

 

posted @ 2014-06-08 13:46  星空刺  阅读(201)  评论(0编辑  收藏  举报