• 三次登录验证以及购物车


    1. 三次登录验证
    完成⽤户登录验证
    要求:
    1. 系统⾃动⽣成4位随机数. 作为登录验证码. 直接⽤就好. 这里不用纠结
    from random import randint
    num = 0
    verify_code = ""
    while num < 4:
    verify_code += chr(randint(65, 90))
    num += 1
    print(verify_code) # 四位随机验证码

    2. ⽤户输入⽤用户名和密码还有验证码.
    3. 用户可以有三次登录的机会. 但是验证码如果输入错误. 不计算在内
    """
    1. 三次登录验证
        完成⽤户登录验证
        要求:
            1. 系统⾃动⽣成4位随机数. 作为登录验证码. 直接⽤就好. 这里不用纠结
                from random import randint
                num = 0
                verify_code = ""
                while num < 4:
                    verify_code += chr(randint(65, 90))
                    num += 1
                print(verify_code) # 四位随机验证码
    
            2. ⽤户输入⽤用户名和密码还有验证码.
            3. 用户可以有三次登录的机会. 但是验证码如果输入错误. 不计算在内
        程序实现:验证码和用户名,密码一起输入,但是首先判断验证码,在验证码正确的前提下,用户名或密码的错误才算在三次之内,否则归咎于验证码错误.
    
    """
    from random import randint
    
    uname = 'alex'
    upsw = 'abc'
    
    count = 0
    while 1:
    
        # 用户登录
        while count < 3:
            # 生成验证码,每次重新输入都要更新验证码
            num = 0
            verify_code = ""
            while num < 4:
                verify_code += chr(randint(65, 90))  # 大写字母的 ASCII 码
                num += 1
            print('验证码:' + verify_code)  # 四位随机验证码
    
            code = input('请输入验证码:').strip().upper()
            name = input('请输入用户名:').strip()
            password = input('请输入密码:').strip()
            if code == verify_code:
                if name == uname and password == upsw:
                    print('登录成功')
                    exit()  # 退出整个程序
                else:
                    print('用户名或密码错误')
                    count += 1
                    continue  # 继续3次以内的循环
            else:
                print('验证码错误,请重新输入')
                break  # 跳出内层的 while循环
        else:  # 输错三次
            print('输错三次,无法登录')
            break  # 跳出外层的 while 循环
    2, 购物车作业
    # 商品信息:
    goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
    ......
    ]

    # 用户信息:
    user = {"username":"alex", "password": "123456"}

    功能要求:

    1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表

    2、用户根据商品编号购买商品

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

    4、退出时,打印已购买商品和余额

    # _*_ coding:utf-8 _*_
    
    
    """
    2, 购物车作业
        # 商品信息:
        goods = [
            {"name": "电脑", "price": 1999},
            {"name": "鼠标", "price": 10},
            {"name": "游艇", "price": 20},
            {"name": "美女", "price": 998},
            ......
        ]
    
        # 用户信息:
        user = {"username":"alex", "password": "123456"}
    
        功能要求:
    
                1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表
    
                2、用户根据商品编号购买商品
    
                3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
    
                4、退出时,打印已购买商品和余额
    
    """
    
    goods = [
            {"name": "电脑", "price": 1999},
            {"name": "鼠标", "price": 10},
            {"name": "游艇", "price": 20},
            {"name": "美女", "price": 998}
    
        ]
    user = {"username": "alex", "password": "123456"}
    shopping_cart = {}  # 内部存储格式为 {"电脑":[1999, 2],"美女":[998, 2]},  商品名/单价/数量
    
    
    # 用户登录
    while 1:
        name = input('请输入用户名:').strip()
        psw = input('请输入密码:').strip()
        if name == user['username'] and psw == user['password']:
            print('登录成功')
            break
        else:
            print('用户名或密码错误,请重新输入')
    
    # 工资
    while 1:
        salary = input('请输入工资:').strip()
        if salary.isdigit():
            salary = int(salary)
            break
        else:
            print('不是数字,请重新输入')
    
    # 购买
    while 1:
        # 商品列表
        print('商品列表'.center(24, '-'))
        for i in range(len(goods)):
            print('%s %s %s' % (i, goods[i]['name'], goods[i]['price']))
    
        choice = input('请输入商品编号(Q退出):').strip()
        if choice.isdigit():
            choice = int(choice)
            if choice < len(goods):  # 在索引范围内
                p = goods[choice]  # 取出商品
    
                if p['price'] <= salary:
                    if p['name'] not in shopping_cart:  # 购物车没有该商品
                        shopping_cart[p['name']] = [p['price'], 1]  # 设置默认值
                    else:  # 数量加1就可以
                        shopping_cart[p['name']][1] += 1
                    salary -= p['price']
                    continue
                else:
                    print('余额不足')
    
            else:
                print('商品不存在,请重新输入')
        elif choice.upper() == 'Q':
            if len(shopping_cart) > 0:
                print('购物列表'.center(24, '-'))
                carts_show = ['%s %s %s %s
    ' % ('商品', '单价', '数量', '总价')]
                for k, v in shopping_cart.items():
                    carts_show.append('%s %s   %s   %s
    ' % (k, v[0], v[1], v[0]*v[1]))
    
                print(''.join(carts_show))
                print('余额:', salary)
            break
        else:
            print('不是数字,请重新输入')
    
    参考代码
  • 相关阅读:
    MRC与ARC两种模式的相互兼容
    解决获取的手机序列号卸载应用重新安装时序列号变动的问题
    屏幕截图
    图片右下角显示水印
    在一个工程中建两个端口(司机端和货主端)
    左右侧边栏抽屉效果
    第二阶段第一天站立会议总结
    第十天站立会议总结
    第九天站立会议总结
    第八天站立会议总结
  • 原文地址:https://www.cnblogs.com/lyfstorm/p/10103260.html
Copyright © 2020-2023  润新知