Python 02 基础作业

购物车简版

#!/usr/bin/env python
# -*- coding: utf-8 -*-
menu_list = [
    ('iPhone7', 5388),
    ('MacBook', 13888),
    ('iWatch', 2188),
    ('128G USB3.0', 299),
    ('ThinkPad x270', 6599),
    ('250G SSD', 669),
]
shopping_list = []
money = input("请输入您的工资:")
if money.isdigit():
    money = int(money)
    while True:
        for k, v in enumerate(menu_list):
            print(k, v)
        tmp_list = input("请输入购买产品序号,或输入'q'退出:")
        if tmp_list == "q":                #输入q退出
            print("您的余额:%s,您购买的商品:%s" % (money, shopping_list))
            break
        elif money >= int(menu_list[int(tmp_list)][1]):     #判断如果钱大于等于购买物品金额则购买
            shopping_list.append(menu_list[int(tmp_list)])
            money = money - menu_list[int(tmp_list)][1]
            print("您的余额:%s,您购买的商品:%s" % (money, shopping_list))
        else:
            print("您的余额不足%s,无法添加该商品" % (menu_list[int(tmp_list)][1]))

 购物车升级版用户接口

1、用户购买信息记录保存。

2、商家可以上货记录保存。

 1.用户接口user.py(用户文件zzz.user,用户上次购买物品记录zzz,商品列表goos_list.txt)

zzz.user格式如下(用户名,密码,用户余额)

zzz,123,20000

zzz格式如下(商品名,商品单价,商品数目)

iWatch,2188,1

goods_list.txt格式如下(商品名,商品单价,商品数目)

iPhone7,5388,10
MacBook,13888,20
iWatch,2188,20
128G USB3.0,299,30
ThinkPad x270,6599,50
250G SSD,669,40

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os,sys,platform

def input_handle(s):                        #整数转换函数
    if str.isdigit(s):
        s = int(s)
    return s

def user_list(user_file):
    with open(user_file, 'r') as pwd_file:     #读取文件内容添加到相应列表中
        user_list = []
        pwd_list = []
        money_list = []
        user_all_list = []
        for i in pwd_file:
            user_all_list.append(i.strip())
            user_list.append(i.split(",")[0])
            pwd_list.append(i.split(",")[1])
            money_list.append(int(i.split(",")[2]))
    return (user_list,pwd_list,money_list)

def user_login(user_list,pwd_list,money_list):                  #用户登录函数
    username_input = input('user:')
    password_input = input('pwd:')
    if username_input in user_list:
        username_id = user_list.index(username_input)   #取index位置
        username = user_list[username_id]
        password = pwd_list[username_id]
        money = money_list[username_id]
        if username_input == username and password_input == password:
            print("欢迎%s登陆,XXX商城!您的余额是%s" % (username,money))
            return (username,password,money)
        else:
            print("用户名密码错误!")
            exit()
    else:
        print("用户名密码错误!")
        exit()

def user_login_write(username,password,money):         #用户余额回写函数
    with open(user_file, 'w') as pwd_file:
        a = ('%s,%s,%s' %(username,password,money))
        pwd_file.write(a)

def user_shopping_list(username):                   #用户购物车显示函数
    user_shopping_all_list = []
    user_shopping_name_list = []
    user_shopping_money_list = []
    user_shopping_number_list = []
    with open(username,'r+') as user_shopping_list:
        print('商品名称\t\t商品价格\t购买数量')
        for i in user_shopping_list:
            #print('-----',json.dumps(i.strip()))
            i = i.strip().split(',')
            user_shopping_all_list.append(i)
            user_shopping_name_list.append(i[0])
            user_shopping_money_list.append(i[1])
            user_shopping_number_list.append(i[2])
            print('%-16s %-8s %-8s' %(i[0], i[1], i[2]))
    return (user_shopping_all_list,user_shopping_name_list,user_shopping_money_list,user_shopping_number_list)

def user_shopping_write(username,shop_all_list):       #用户购物车回写函数
    with open(username,'w') as user_shopping_write:
        for i in shop_all_list:
            a = ('%s,%s,%s' %(i[0],i[1],i[2]))
            user_shopping_write.write(a+'\n')

def shop_list():                            #商品列表显示函数
    shop_all_list = []
    shop_name_list = []
    shop_money_list = []
    shop_number_list = []
    with open('goos_list.txt','r') as shop_list:
        for k,i in enumerate(shop_list):
            i = i.strip().split(',')
            shop_all_list.append(i)
            shop_name_list.append(i[0])
            shop_money_list.append(i[1])
            shop_number_list.append(i[2])
    return (shop_all_list,shop_name_list,shop_money_list,shop_number_list)

def shop_list_write(shop_all_list):
    with open('goos_list.txt.new', 'w') as shop_list:           #商品列表回写函数
        for i in shop_all_list:
            a = ('%s,%s,%s\n' %(i[0],i[1],i[2]))
            shop_list.write(a)
    system = platform.system()
    if system == 'Windows':
        os.system('move goos_list.txt goos_list.txt.bak')
        os.system('move goos_list.txt.new goos_list.txt')
    elif system == 'Linux':
        os.system('mv goos_list.txt goos_list.txt.bak')
        os.system('mv goos_list.txt.new goos_list.txt')

if __name__ == '__main__':
    user_file = 'zzz.user'
    shopping_list = []
    (user_list, pwd_list, money_list) = user_list(user_file)                                #初始化user_list
    (username, password, money) = user_login(user_list, pwd_list, money_list)               #初始化user_login
    (shop_all_list, shop_name_list, shop_money_list, shop_number_list) = shop_list()        #初始化shop_list
    if username != '':
        print('\033[32;1m==========请查看您上次登录购买到的商品==========\033[0m')
        user_shopping_list(username)
    while True:
        print('\033[31;1m===========商品列表=========\033[0m')
        print('商品编号\t商品名称\t商品价格\t商品数量')
        for h,j in enumerate(shop_all_list):                                                #输出商品列表
            print('%-10s %-16s %-8s %-8s' %(h,j[0], j[1], j[2]))
        shopping_input = input('请选择您想购买的商品编号,输入q退出:')
        shopping_input = input_handle(shopping_input)
        if shopping_input == 'q':
            exit('欢迎再次光临')
        elif shopping_input < len(shop_name_list) and shop_name_list[shopping_input]:       
            number_input = input('您选择的商品%s,剩余数量%s请输入您的购买数量' % (shop_name_list[shopping_input],shop_number_list[shopping_input]))
            number_input = input_handle(number_input)
            if number_input < int(shop_number_list[shopping_input]):
                money_start = number_input*int(shop_money_list[shopping_input])
                if money_start <= int(money):
                    number_end = str(int(shop_number_list[shopping_input]) - number_input)
                    shop_all_list[shopping_input][2] = number_end
                    shop_number_list[shopping_input] = number_end
                    money = int(money) - money_start
                    shopping_list.append([shop_name_list[int(shopping_input)],money_start,number_input])
                    print('您购买到的商品列表')
                    print('商品名称    价格    数量')
                    for i in shopping_list:
                        print('%-10s %-10s %-10s' %(i[0],i[1],i[2]))
                    print('您的余额%s' % money)
                    opt_input = input('是否继续购物输入y继续,输入q结束:')
                    if opt_input == 'q':
                        user_shopping_write(username,shopping_list)
                        user_login_write(username, password, money)
                        shop_list_write(shop_all_list)
                        exit('欢迎再次光临')
                    elif opt_input == 'y':
                        continue
                else:
                    print('\033[34;1m您的余额不足请重新选择商品:\033[0m')
                    continue
        else:
            print('您输入的有误请重新输入:')
            continue
        break

 2.商家接口busniss.py(用户文件www.user,商品列表goos_list.txt)

www.user格式如下(用户名,密码)

www,123

goods_list.txt格式如下(商品名,商品单价,商品数目)与用户相同

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os,sys,platform

def input_handle(s):                        #整数转换函数
    if str.isdigit(s):
        s = int(s)
    return s

def user_list(user_file):
    with open(user_file, 'r') as pwd_file:     #读取文件内容添加到相应列表中
        user_list = []
        pwd_list = []
        user_all_list = []
        for i in pwd_file:
            user_all_list.append(i.strip())
            user_list.append(i.split(",")[0])
            pwd_list.append(i.split(",")[1])
    return (user_list,pwd_list)

def user_login(user_list,pwd_list):                  #用户登录函数
    username_input = input('user:')
    password_input = input('pwd:')
    if username_input in user_list:
        username_id = user_list.index(username_input)   #取index位置
        username = user_list[username_id]
        password = pwd_list[username_id]
        if username_input == username and password_input == password:
            print("欢迎%s登陆,XXX商城后台!" % (username))
            return (username,password)
        else:
            print("用户名密码错误!")
            exit()
    else:
        print("用户名密码错误!")
        exit()

def shop_list():  # 商品列表显示函数
    shop_all_list = []
    shop_name_list = []
    shop_money_list = []
    shop_number_list = []
    with open('goos_list.txt', 'r') as shop_list:
        for k, i in enumerate(shop_list):
            i = i.strip().split(',')
            shop_all_list.append(i)
            shop_name_list.append(i[0])
            shop_money_list.append(i[1])
            shop_number_list.append(i[2])
    return (shop_all_list, shop_name_list, shop_money_list, shop_number_list)

def shop_list_write(shop_all_list):
    with open('goos_list.txt.busniss', 'w') as shop_list:           #商品列表回写函数
        for i in shop_all_list:
            a = ('%s,%s,%s\n' %(i[0],i[1],i[2]))
            shop_list.write(a)
    system = platform.system()
    if system == 'Windows':
        os.system('move goos_list.txt goos_list.txt.bak')
        os.system('move goos_list.txt.busniss goos_list.txt')
    elif system == 'Linux':
        os.system('mv goos_list.txt goos_list.txt.bak')
        os.system('mv goos_list.txt.busniss goos_list.txt')

if __name__ == '__main__':
    user_file = 'www.user'
    shopping_list = []
    (user_list, pwd_list) = user_list(user_file)
    (username, password) = user_login(user_list, pwd_list)
    (shop_all_list, shop_name_list, shop_money_list, shop_number_list) = shop_list()
    if username != '':
        print('\033[32;1m==========欢迎登陆商品后台==========\033[0m')
    while True:
        print('\033[31;1m===========商品列表=========\033[0m')
        print('商品编号\t商品名称\t商品价格\t商品数量')
        for h,j in enumerate(shop_all_list):                                                #输出商品列表
            print('%-10s %-16s %-8s %-8s' %(h,j[0], j[1], j[2]))
        shopping_input = input('请选择您想上货的商品编号,输入q退出:')
        shopping_input = input_handle(shopping_input)
        if shopping_input == 'q':
            exit('欢迎再次光临')
        elif shopping_input < len(shop_name_list) and shop_name_list[shopping_input]:
            number_input = input('您选择的商品%s,剩余数量%s请输入您上货数量' % (shop_name_list[shopping_input],shop_number_list[shopping_input]))
            number_input = input_handle(number_input)
            money_start = shop_money_list[shopping_input]
            number_end = str(int(shop_number_list[shopping_input]) + number_input)
            shop_all_list[shopping_input][2] = number_end
            shop_number_list[shopping_input] = number_end
            shopping_list.append([shop_name_list[int(shopping_input)],money_start,number_input])
            print('您要上货的商品列表')
            print('商品名称    价格    数量')
            for i in shopping_list:
                print('%-10s %-10s %-10s' % (i[0], i[1], i[2]))
            opt_input = input('是否继续购物输入y继续,输入q结束:')
            if opt_input == 'q':
                shop_list_write(shop_all_list)
                exit('欢迎再次光临')
            elif opt_input == 'y':
                continue
        break

 

posted @ 2017-04-14 17:27  Hungry-fish  阅读(232)  评论(0编辑  收藏  举报