首页 > 其他 > 详细

购物车--函数版

时间:2018-08-21 23:55:18      阅读:317      评论:0      收藏:0      [点我收藏+]

用函数完成登录注册以及购物车的功能.  难度系数一般
# 要求:
# 1, 启动程序, 用户可选择四个选项: 登录, 注册, 购物, 退出.
# 2, 用户注册, 用户名不能重复, 注册成功之后, 用户名密码记录到文件中.
# 3, 用户登录, 用户名密码从文件中读取,进行三次验证, 验证不成功则退出整个程序.
# 4, 用户登录成功之后才能选择购物功能进行购物, 购物功能( 就是将购物车封装到购物的 函数中).
# 5, 退出则是退出整个程序.
# 欢迎计入购物系统:
# 1. 登录
# 2. 注册
# 3. 购物
# 4. 退出

goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
]

shopping_car = []
shopp_dic = {}
flag = True
def one():
    ‘‘‘
    打印导航
    :return:
    ‘‘‘
    print(‘‘‘欢迎进入老男孩购物系统:
1.登录
2.注册
3.购物
4.退出
    ‘‘‘)

def register():
    ‘‘‘
    注册函数
    :return:
    ‘‘‘
    while 1:
        username = input(请输入用户名:)
        password = input(请输入密码:)
        with open(user,r+,encoding=utf-8) as f:
            for line in f:
                new_line = line.split(&&)
                if username == new_line[0]:
                    print(用户名已存在,请重新输入)
                    break
            else:
                f.write(\n+username+&&+password)
                print(注册成功)
                break

def login():
    ‘‘‘
    登录函数
    :return:
    ‘‘‘
    global flag
    count = 1
    while count <=3:
        username = input(请输入用户名:)
        password = input(请输入密码:)
        with open(user,r,encoding=utf-8) as f:
            for line in f:
                new_line = line.strip().split(&&)
                if username == new_line[0] and password == new_line[1]:
                    print(登录成功!)
                    flag = False
                    break
            else:
                print(用户名或密码错误,请重新输入,还有%s次机会 % (3-count))
                count += 1
                continue
            break


def shopping():
    ‘‘‘
    购物函数
    :return:
    ‘‘‘
    if flag == False:      #判断有没有登录
        while True:
            money = input(请输入存款:).strip()
            if 0 < int(money) and money.isdigit():  # 判断输入的金额是否大于0,是否是数字
                for dic in goods:
                    print(goods.index(dic) + 1, dic[name], dic[price])  # 打印所有商品
                while True:
                    choice = input(请输入要选择的商品序号:).strip()
                    if 0 < int(choice) <= len(goods) and choice.isdigit():
                        for shopp_dic in shopping_car:  # shopp_dic是shopping_car列表中的每一个字典
                            if goods[int(choice) - 1][name] == shopp_dic[name]:
                                shopp_dic[num] += 1  # 如果选择的商品名字跟字典中的商品名字是一样的,则该商品的数量+1
                                break
                        else:  # 如果选择的商品没有在购物车,则加入购物车,
                            shopp_dic = {}
                            shopp_dic[name] = goods[int(choice) - 1][name]
                            shopp_dic[price] = goods[int(choice) - 1][price]
                            shopp_dic[num] = 1  # 第一次加入商品初始数量为1
                            shopping_car.append(shopp_dic)
                        choice2 = input(是否继续选择Y继续,N结算:).strip()
                        if choice2.upper() == Y:  # 选择继续购买
                            for dic in goods:
                                print(goods.index(dic) + 1, dic[name], dic[price])  # 打印所有商品
                            continue
                        else:
                            for shopp_dic in shopping_car:
                                print(您已选择以下商品:)
                                print(shopp_dic)  # 打印已加购物车的商品
                            if int(money) > shopp_dic[price] * shopp_dic[num]:  # 如果输入的总钱数大于商品总金额,告知共花费多少,剩余多少
                                surplus = int(money) - shopp_dic[price] * shopp_dic[num]
                                print(共花费%s元,还剩%s元 % (shopp_dic[price] * shopp_dic[num], surplus))
                            else:  # 总金额不足
                                owe = shopp_dic[price] * shopp_dic[num] - int(money)
                                print(余额不足,还缺%s元 % owe)
                        break
                    else:
                        print(输入有误,请重新输入)
            else:  # 输入的数字小于0并且或者不是数字的话,重新输入
                print(输入有误,请重新输入)
            break
    else:     #没有登录的话执行登录函数
        print(您还没有登录,请先登录!)
        login()


def main():
    while True:
        one()
        choice = input(请输入选项:)
        if choice == 1:
            login()
            continue
        elif choice == 2:
            register()
        elif choice == 3:
            shopping()
        elif choice == 4:
            break
        else:
            print(输入有误,请重新输入)
        break
main()

 

 


购物车--函数版

原文:https://www.cnblogs.com/lianghui-lianghui/p/9515100.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!