haishi 发表于 2018-8-14 10:02:20

python购物车-优化版本

#!/bin/bash/env python  
#python3.x
  
'''
  
要求一:
  
    1.启动程序后,然该用户输入工资,然后打印商品列表
  
    2.允许用户根据商品编号购买商品
  
    3.用户选择商品后,检测余额是否足够,够就直接扣款,不够就提醒
  
    4.可随时退出,退出时,打印已购买商品和余额
  
要求二:
  
    用户输入:
  
    1.商品信息存在文件里
  
    2.已购商品,余额记录。
  
'''
  
#获取当前时间
  
import time
  
date = time.strftime("%Y-%m-%d %H:%M:%S")
  

  
#读取商品列表
  
f =open("shangpin.txt","r")
  
wenzi = f.readlines()
  
f.close()
  

  
#读取用户列表
  
f = open("yh.txt","r")
  
ff = f.readlines()
  
f.close()
  

  
zhanghu_list = []             #列表用于临时存储 账户的名字;
  
zhanghu = {}                  #用于临时存储用户和余额 信息;
  
shopping_list = []
  

  
#循环用户名和余额并赋值给已定义好的 字典zhanghu ;
  
for i in ff:
  
    k,v = i.strip().split(" ")      #分别把账户和余额 去换行和空格后 赋值给 k v ;
  
    zhanghu = v                  #把key 和value 添加的字典zhanghu 里边 ;
  

  
shopping = {}                              #定义商品字典
  

  
#通过循环将读取的商品序号、名称、价格 添加到商品字典dict1里边
  
for i1 in wenzi:
  
    ff1 = i1.strip("\n")
  
    list1 = list(ff1.split(" "))
  
    list2 = []                              #open读取商品后的列表
  
    for i2 in list1:
  
      list2.append(list1)
  
      list2.append(list1)
  
      shopping] = list2
  
      break
  

  
yonghu = input("请输入您的用户名:")
  
#循环字典:zhanghu 里边的key ,也就是用户列表,将值赋值到 已定义好的用户列表里 zhanghu_list ;
  
for aa in zhanghu.keys():
  
    zhanghu_list.append(aa)
  
#判断输入的yonghu 是否在 已经存在的账户列表里;
  
if yonghu in zhanghu_list:          #如果在输入的账户在 已经存在的列表里,打印您的余额是多少 ;
  
    print("您的余额是{0}$:".format(zhanghu))
  
    print("商品列表".center(30, "="))
  
    for i2 in shopping:
  
      print(i2, shopping, shopping)
  
else:
  
    zhanghu = 0
  
    print("添加新用户!\n您的余额是0$ !")
  
    print("商品列表".center(30, "="))
  
    for i2 in shopping:
  
      print(i2, shopping, shopping)
  
while True:
  
    chongzhi = input("您要充值吗? y/n :")
  
    if chongzhi == "y":
  
      while True:
  
            gongzi = input("请输入您的工资:")
  
            if gongzi.isdigit():
  
                gongzi = int(gongzi) + int(zhanghu)
  
                print("您的余额是{0}$:".format(gongzi))
  
                break
  
            elif gongzi == "q":
  
                exit()
  
            else:
  
                print("输入错误,请重新输入")
  
      break
  
    elif chongzhi == "n":
  
      gongzi = int(zhanghu)
  
      break
  
    else:
  
      print("输入错误,请重新输入!")
  

  
while True:
  
    print("商品列表".center(30, "="))
  
    for i2 in shopping:
  
      print(i2, shopping, shopping)
  
    choice = input("请输入购买商品的编号:【按q退出】")
  
    if choice.isdigit():
  
      choice_1 = int(choice)
  
      # 如果用户余额大于选择的商品的价格
  
      if gongzi >= int(shopping):
  
            shopping_wupin = , shopping, date]
  
            shopping_list.append(shopping_wupin)
  
            gongzi = gongzi - int(shopping)
  
            print("您的余额是:{0}$".format(gongzi))
  
      else:
  
            print("您的余额不足!")
  
    elif choice == "q":
  
      print("您已购买以下商品".center(30, "="))
  
      #打开用户已购买文件,讲已购买的商品列表写进去。
  
      shangpin = open("yh-list.txt", "a")
  
      for i3 in shopping_list:
  
            print(i3, i3, i3, i3)
  
            shangpin.write("\n")
  
            shangpin.write(yonghu)
  
            shangpin.write(" ")
  
            shangpin.write(i3)
  
            shangpin.write(" ")
  
            shangpin.write(i3)
  
            shangpin.write(" ")
  
            shangpin.write(i3)
  
            shangpin.write(" ")
  
            shangpin.write(i3)
  
      shangpin.close()
  
      #打开用户文件,将用户和用户对应的余额写进去。
  
      zhanghu = gongzi
  
      save = open("yh.txt","w")
  
      for zhanghu_save in zhanghu:
  
            save.write(zhanghu_save)
  
            save.write(" ")
  
            save.write(str(zhanghu))
  
            save.write("\n")
  
      save.close()
  
      print("".center(38, "-"))
  
      print("您的余额是:{yue}$".format(yue=gongzi))
  
      exit()
  
    else:
  
      print("输入错误,请重新输入")
页: [1]
查看完整版本: python购物车-优化版本