werew33 发表于 2015-11-4 08:20:27

python 编写购物车程序

1、判断用户是否有金额,没有要求用户输入;

2、显示商品列表,用户可以根据需求输入:商品编号、显示购物车、显示余额、结算等;
3、(1):输入free,显示用户剩余金额;
   (2):输入list,显示购物车列表;
   (3):输入all,进行结算;
                结算:1、会判断用户购物车是否有商品,没有则退出;
                          2、购物车有商品会提示用户是否购买:
                                Y或y:购买商品,显示花费和剩余;
                                N或n:退出,清空购物车,显示余额并退出。
                                其它输入:退出,清空购物车,显示余额并退出。
   (4):输入商品编号:
                1、判断用户余额是否可以购买次商品,不能购买给出提示;
                2、用户可以购买商品,要求用户输入购买数量,如果购买数量超过用户余额,给你不能购买提示。
                3、用户余额可以购买对应商品,把商品加入购物车,并显示商品列表。
4、用户只有在输入all的时候,才能去购物车结算商品。
流程图如下:

代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'weibinf'
#定义空的购物列表:
cart = []
#查询用户余额
import os
def money():
    filename = r'C:\Users\Administrator\Desktop\money.txt'
    if os.path.exists(filename):
      m = open('C:\Users\Administrator\Desktop\money.txt','r')
      mon = m.readline()
      m.close()
      mon = int(mon)
      return mon
    else:
      exitt = False
      while not exitt:
            aa = raw_input("\033[31m请输入你的工资: \033[0m").strip()
            if aa.isdigit():
                mon = int(aa)
                exitt = True
            else:
                print "请输入正确的数字。。"
      return mon
#保存用户输入的余额
def free_money(x):
    a = open('C:\Users\Administrator\Desktop\money.txt','w')
    a.write('%s'%x)
    a.close()
#定义余额变量
wage = money()
wage1 = wage #定义总余额
shoping_money3 = 0 #定义用户总共消费
#定义商品列表:
shop = [
    ["iphone6s",5288],
    ["iphone6s plus",6088],
    ["mac book",8888],
    ["apple",5],
    ["乐视1S",1099]
]
#循环显示购物信息:
while True:
    #打印出商品列表和价格:
    for index,p in enumerate(shop):
      print index,p,p
    #获取用户输入:
    shoping = raw_input("\033[31m请输入商品编号,结算请输入all,显示购物车请输入:list,显示余额请输入:free : \033[0m").strip()
    #判断用户输入是否合法
    if shoping.isdigit():
      shoping = int(shoping)
      shoping_money = shop
      if shoping_money < wage: #判断用户是否可以购买
            while True:
                num = raw_input("请输入购买数量: ").strip()
                if not num.isdigit():
                  print "\033[31m请正确输入商品数量。。\033[0m"
                else:
                  num = int(num)
                  if num == 0:
                        break
                  else:
                        shoping_money2 = shoping_money * num #判断商品数量的价钱
                        if shoping_money2 < wage:   #判断用户是否可以购买
                            cart.append(shop)#把商品名称添加到购物车
                            cart.append(num)    #把商品数量添加到购物车
                            print "\033,num)
                            wage = wage - shoping_money2   #算出用户剩余金额
                            shoping_money3 +=shoping_money2   #算出用户总消费金额
                            break
                        else:
                            print "\033)
                            break
      elif shoping_money > wage: #商品不能购买的提示
            print "\033
      else:   #商品不能购买的提示
            print "\033[31m你的工资太少了,还是去努力赚钱吧。。\033[0m"
            break
    elif shoping == "list":#显示购物列表
      print "\033[31m----------shopping list----------\033[0m"
      num = 0
      aa = len(cart)
      bb = aa / 2
      for x in range(bb):
            print cart,"\033
            num+=2
      print "\033[31m---------------------------------\033[0m"
    elif shoping == "free":   #显示剩余金额
      if not len(cart):
            print "\033[31m你还没有购物,剩余:%s\033[0m" %wage
      else:
            print "\033[31m你一共花费:%s,剩余:%s\033[0m"%(shoping_money3,wage)
    elif shoping == "all": #用户结算
      if not len(cart): #判断购物车是否为空
            print "\033[31m你的购物车为空,不需要结算。。\033[0m"
            free_money(wage)
            break
      else: #购物车不为空,显示购物列表和购买商品数量
            print "\033[31m----------shopping list----------\033[0m"
            num = 0
            aa = len(cart)
            bb = aa / 2
            for x in range(bb):
                print cart,"\033
                num+=2
            print "\033[31m---------------------------------\033[0m"
            gm = raw_input("\033[31m是否确认购买:Y or N\033[0m ").strip()   #判断用户是否购买商品
            if gm == "N" or gm == "n":   #用户不购买
                print "你没有购买任何商品,剩余:\033[31m%s\033[0m"%wage1
                free_money(wage1)
                break
            elif gm == "y" or gm == "Y":   #用户购买
                print "你一共花费\033[31m%s\033[0m还剩下\033[31m%s\033[0m"%(shoping_money3,wage)
                free_money(wage)
                break
            else:#错误输入,默认用户不购买
                print "你输入的不正确,没有购买任何商品,剩余:\033[31m%s\033[0m"%wage1
                free_money(wage1)
                break

页: [1]
查看完整版本: python 编写购物车程序