要求一:

    1.启动程序后,然该用户输入工资,然后打印商品列表

    2.允许用户根据商品编号购买商品

    3.用户选择商品后,检测余额是否足够,够就直接扣款,不够就提醒

    4.可随时退出,退出时,打印已购买商品和余额

要求二:

    用户输入:

    1.商品信息存在文件里

    2.已购商品,余额记录。


    商家输入:

    1.可以添加商品,修改商品价格


要求三:

   将普通用户登录和商家用户登录 写成两个py文件。


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[k] = 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[1])
        list2.append(list1[2])
        shopping[list1[0]] = 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[yonghu]))
    print("商品列表".center(30, "="))
    for i2 in shopping:
        print(i2, shopping[i2][0], shopping[i2][1])
else:
    zhanghu[yonghu] = 0
    print("添加新用户!\n您的余额是0$ !")
    print("商品列表".center(30, "="))
    for i2 in shopping:
        print(i2, shopping[i2][0], shopping[i2][1])
while True:
    chongzhi = input("您要充值吗? y/n :")
    if chongzhi == "y":
        while True:
            gongzi = input("请输入您的工资:")
            if gongzi.isdigit():
                gongzi = int(gongzi) + int(zhanghu[yonghu])
                print("您的余额是{0}$:".format(gongzi))
                break
            elif gongzi == "q":
                exit()
            else:
                print("输入错误,请重新输入")
        break
    elif chongzhi == "n":
        gongzi = int(zhanghu[yonghu])
        break
    else:
        print("输入错误,请重新输入!")

while True:
    print("商品列表".center(30, "="))
    for i2 in shopping:
        print(i2, shopping[i2][0], shopping[i2][1])
    choice = input("请输入购买商品的编号:【按q退出】")
    if choice.isdigit():
        choice_1 = int(choice)
        # 如果用户余额大于选择的商品的价格
        if gongzi >= int(shopping[choice][1]):
            shopping_wupin = [choice, shopping[choice][0], shopping[choice][1], date]
            shopping_list.append(shopping_wupin)
            gongzi = gongzi - int(shopping[choice][1])
            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[0], i3[1], i3[2], i3[3])
            shangpin.write("\n")
            shangpin.write(yonghu)
            shangpin.write(" ")
            shangpin.write(i3[0])
            shangpin.write(" ")
            shangpin.write(i3[1])
            shangpin.write(" ")
            shangpin.write(i3[2])
            shangpin.write(" ")
            shangpin.write(i3[3])
        shangpin.close()
        #打开用户文件,将用户和用户对应的余额写进去。
        zhanghu[yonghu] = gongzi
        save = open("yh.txt","w")
        for zhanghu_save in zhanghu:
            save.write(zhanghu_save)
            save.write(" ")
            save.write(str(zhanghu[zhanghu_save]))
            save.write("\n")
        save.close()
        print("".center(38, "-"))
        print("您的余额是:{yue}$".format(yue=gongzi))
        exit()
    else:
        print("输入错误,请重新输入")

python商家用户脚本

#!/bin/bash/env python
#python3.x

'''
    商家输入:
    1.可以添加商品,修改商品价格
'''
#读取商品列表
f =open("shangpin.txt","r")
wenzi = f.readlines()
f.close()
shopping = {}                              #定义商品字典

#通过循环将读取的商品序号、名称、价格 添加到商品字典dict1里边
for i in wenzi:
    ff = i.strip("\n")
    list1 = list(ff.split(" "))
    list2 = []                              #open读取商品后的列表
    for i2 in list1:
        list2.append(list1[1])
        list2.append(list1[2])
        shopping[list1[0]] = list2
        break
while True:
    print("商品列表".center(30,"="))
    # print(shopping)
    for i in shopping:
        print(i,shopping[i][0],shopping[i][1])
    print("".center(34,"-"))
    change = input("你要添加产品/修改产品:添加产品输入:1  修改产品输入:2 [按q退出]:")
    if change == "1":
        num = input("请输入产品序号:[例如:1]:")
        name = input("请输入商品名称:[例如:自行车]:")
        price = input("请输入商品价格:[例如:1000]:")
        list3 = []
        list3.append(name)
        list3.append(price)
        shopping[num] = list3
        print(shopping)
    elif change == "2":
        num2 = input("请输入要修改的商品序号:[例:1]:")
        name2 = input("您要修改商品名称吗? y/n:")
        if name2 == "y":
            change2 = input("请输入修改后的商品名称:[例:电视]:")
            shopping[num2][0] = change2
        elif name2 == "n":
            pass
        else:
            print("输入错误,请重新输入!")
        change3 = input("您要修改商品价格吗? y/n:")
        if change3 == "y":
            change4 = input("请输入修改后的商品价格:[例:1000]:")
            shopping[num2][1] = change4
            print(shopping)
        elif name2 == "n":
            print(shopping)
        else:
            print("输入错误,请重新输入!")
    else:
        save = open("shangpin.txt", "w")
        for iii in shopping:
            save.write(iii)
            save.write(" ")
            save.write(shopping[iii][0])
            save.write(" ")
            save.write(shopping[iii][1])
            save.write("\n")
        save.close()
        exit()