python购物车进阶(函数)

购物车进阶:

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

'''头发掉了不少'''
import os

'''用户注册'''


def register():
    username = input("请输入注册用户名:")
    password = input("请输入注册密码:")
    with open('user.txt', encoding='utf-8', mode='r+') as f1:
        for i in f1:
            hard = i.split(' ')
            if username == hard[0]:
                print('用户已存在')
                break
        else:
            f1.write(username + ' ' + password + '\n')
            print('{}用户注册成功'.format(username))


'''用户登录'''


def login():
    count = 1
    while count <= 3:
        username = input('请输入用户名:')
        password = input('请输入密码:')
        with open('user.txt', encoding='utf-8') as f:
            for i in f:
                new_line = i.strip().split(' ')
                if username == new_line[0] and password == new_line[1]:
                    print('登录成功!')
                    shopping()
                    break
            else:
                print('用户名或密码错误,请重新输入,还有{}次机会'.format(3 - count))
                count += 1
                continue
            break


# login()
'''购物车'''


def shopping():
    good_list = [
        {"name": "iphone", "price": 999},
        {"name": "watch", "price": 99},
        {"name": "耳机", "price": 66},
        {"name": "充电器", "price": 20}
    ]
    while True:
        monny = input('请输入你充值的金额:').strip()
        if monny.isdigit():
            print('成功充值', monny, '')
            break
        else:
            print('我要钱')
    # 判断用户输入是不是钱
    good_car = []  # 定义购物车商品列表
    monny_test = []  # 定义余额

    false = True  # 用于whlie退出
    print("商品列表".center(30, '*'))
    print('序号'.center(10), '名称'.center(10), '价格'.center(10))
    shapp_len = len(good_list)
    for i in range(shapp_len):
        print(str(i + 1).center(10), good_list[i]['name'].center(10), str(good_list[i]['price']).center(10))
    '''用于输出序列号加商品名及价格'''
    while false:
        shopp = input("输入你购买的商品序号q为进入购物车查看:").upper()
        if shopp.isdigit():  # 判断是是否为数字
            if int(shopp) - 1 > shapp_len - 1:  # -1为头索引位置
                print('输入的序号不在范围类')
            else:
                good_car.append((good_list[int(shopp) - 1]['name'], good_list[int(shopp) - 1]['price']))
                print('{}已经添加到购物车,价格为{}'.format(good_list[int(shopp) - 1]['name'], good_list[int(shopp) - 1]['price']))
                '''把选中商品的内容添加到good_car列表中'''

        elif shopp == 'Q':
            print('购物车的商品为'.center(30, '='))
            print('商品名'.center(10), '价格'.center(10))
            for i in good_car:
                print(i[0].center(10), str(i[1]).center(10))
                monny_test.append(i[1])
            Monny = sum(monny_test)  # 求和
            print('总个数为{}总金额为{}-->充值的金额为{}'.format(len(good_car), Monny, monny))
            if int(monny) > Monny:
                print('购买成功,余额为{}'.format(int(monny) - Monny))
                break
            else:
                print('你的余额不足,请去掉一下商品根据序号删除:')
                print('购物车的商品为'.center(30, '='))
                print('序号'.center(10), '商品  价格'.center(10))

                while True:
                    monny_test2 = []  # 定义删除商品后余额

                    for i in range(len(good_car)):
                        print(str(i + 1).center(10), good_car[i])
                    num = int(input('你的余额不足,请去掉一下商品,输入产品序号')) - 1  # -1为头索引位置0
                    if num < len(good_car):
                        del good_car[num]  # 选择删除的商品通过索引位置删除
                        for i in good_car:
                            print(i[0].center(10), str(i[1]).center(10))
                            monny_test2.append(i[1])  # 取出删除后的商品价格添加到monny_test2中
                        Monny = sum(monny_test2)  # 求和

                        print('总个数为{}总金额为{}-你充值的金额为{}'.format(len(good_car), Monny, monny))
                        if int(monny) >= Monny:  # 如果总钱大于购买商品的钱则自动结算
                            print('购买成功,余额为{}'.format(int(monny) - Monny))
                            break

                        else:
                            continue
                    else:
                        print('输入超出范围')
                false = False


'''启动程序'''
while True:
    print('欢迎来到taobao——tow世界\n1\t用户登录\n2\t用户注册\n3\t退出购物车')
    call = input('输入你的选择:')
    if call == '1':
        login()
        break
    elif call == '2':
        register()
        continue
    elif call == '3':
        break
    else:
        print('输入有误')

充满活力的一天!!!

猜你喜欢

转载自www.cnblogs.com/jin-yuana/p/9889070.html
今日推荐