python22期第三天---购物车作业(课程总结)

作业需求:

  

函数一:实现三次登陆功能
登录的用户名,密码必须从文件中取出。
实现三次登录。

函数二:实现新用户注册功能
用户写入用户名,密码。
检测:用户名不能重复。

函数三:购物功能
将购物车加工成函数。
加一个功能:
将买的商品写入到一个文件中,商品名,数量,单价。


功能实现:

   1、实现三次登录失败锁定账户

2、实现 登录时用户名不能重复,如果重复提示账户已经存在

3、商品未登录不能进行购买

4、商品进行购买,价格不够可以进行充值

5、即将商品购买人的姓名:商品名:单价:总价:余额:写入到shopping.txt 文件

 

 

 

作业:

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


shop_list=[]                                           #购物车清单列表



def register ():                                       #注册功能
    with open('user.json', mode='r', encoding='utf-8') as f1:
        data_r = f1.readline()
        dic_r = json.loads(data_r)
        f1.close()

    while True:
        user=input("请输入您要注册的账户:")
        pwd=input("请输入你要注册的账户密码:")
        if user in dic_r['username']:
            print("您注册的账户已经存在请重新输入")
            continue
        else:
            with open('user.json', mode='a', encoding='utf-8') as f1:
                register_list={}
                register_list['username'] = user
                register_list['password'] = pwd
                f1.write(json.dumps(register_list))
                f1.write('\n')
                print("恭喜你注册成功,可以进行登录并进行购物:")
        break
        login()






def chongzhi (Assets):                                        # 充值功能
    # global Assets
    chongzhi_money=input("请输入你要充值的金额:")
    chongzhi_money=int(chongzhi_money)
    Assets = Assets + chongzhi_money

    print("您要充值的金额为:%s " %(Assets) )
    print("您的总月为:%s" %(Assets) )
    return Assets


def login ():                                           #登录功能
    flag = False
    count = 0
    with open('user.json', mode='r', encoding='utf-8') as f1:
        data_r = f1.readlines()
    while True:
        global user
        userlist = {}
        user = input("请输入用户名:")
        pwd = input("请输入密码:")
        for i in data_r:
            i=eval(i)
            if i['username'] == user and i['password'] == pwd:
                flag = True
            else:
                pass
        if flag:
            print("登录成功,请选择商品进行购买")
            break

        else:
            print("登录失败,请重新登录")
            count += 1
            if count == 3:
                print('您输入的用户密码错误超过3次,已经被锁定,程序已经退出')
                with open('lock.json', mode='a', encoding='utf-8') as f2:
                    userlist['username'] = user
                    userlist['password'] = pwd
                    f2.write(json.dumps(userlist))
                    f2.write('\n')
                    exit()





def shopping (Assets): #购物车功能
    balance = 0
    ret = 0
    Assets=input("请输入你的资产总资产:").strip()
    Assets=int(Assets)
    print("您的总资产为%s:" %(Assets))
    while True:
        for index,item_name in enumerate(goods):
            print(index,item_name)
        number=input("请输入你要购买的商品序列号:").strip()   # nubmer 代表的是商品的索引,也就是序列号
        if number.isdigit():
            number=int(number)                                 # 将输入的序号初始化为数字
            if number < len(goods) and number >= 0:
                p_item=goods[number]                           # 读取下表元素
                shop_list.append(p_item)                   # 将商品添加到购物车列表
                print(shop_list)
                shop_value=input("请输入 yes/no 继续购买或者结算:").strip()   #输入yes/no 继续购买
                if shop_value == 'yes':
                    pass
                elif  shop_value == 'no':
                    print("您购买的商品列表为:%s"  %(shop_list))
                    for list in shop_list:  #对购买的商品进行价格核算
                        ret = ret + list['price']
                    SY_money=Assets - ret                #余额
                    if Assets - ret >=0:                   #余额判断,如果小于0元进入到充值界面
                        print('您的余额为:%s  购买完毕已退出' % SY_money)
                        with open('shopping.txt',mode='a',encoding='utf-8') as f4:
                            f4.write('您的账户:%s \n' %(user))
                            f4.write('购买上商品:%r \n' %(shop_list))
                            f4.write('剩余余额:%r \n' %(SY_money))
                            exit()
                    else :
                        goumai=input('余额不足请输入:yes进行充值/no 停止进行购买:')
                        if goumai == 'yes':
                            Assets=chongzhi(Assets)
                        elif goumai == 'no':
                            print('余额不足停止购买操作')
                            exit()

if __name__ == "__main__":
    Assets=int(0)
    # Assets=int(Assets)
    while True:
        print(
            '''
            1.注册
            2.登录
            3.购物车。
            '''
        )


        first_nmuber=input("请输入号码您要选择的号码:")
        if first_nmuber.isdigit():
            first_nmuber=int(first_nmuber)
            if first_nmuber == 1:
                register()
            elif first_nmuber == 2 or first_nmuber == 3:
                login()
                shopping(Assets)
            else:
                print("您输入的功能不再此清单内,请重新输入")
                continue

 

 

  

猜你喜欢

转载自www.cnblogs.com/dy11/p/9084227.html