三次登录验证以及购物车

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\n‘ % (‘商品‘, ‘单价‘, ‘数量‘, ‘总价‘)]
            for k, v in shopping_cart.items():
                carts_show.append(‘%s %s   %s   %s\n‘ % (k, v[0], v[1], v[0]*v[1]))

            print(‘‘.join(carts_show))
            print(‘余额:‘, salary)
        break
    else:
        print(‘不是数字,请重新输入‘)

参考代码

原文地址:https://www.cnblogs.com/liangxiaoji/p/10103260.html

时间: 2024-07-31 14:22:36

三次登录验证以及购物车的相关文章

struts2 学习(三) ----- 用户登录验证

下面是struts2 的第三个程序(用户登录验证)步骤:(需要新建login.jsp,Login.java和message.jsp) 1.增加Struts框架,步骤在第一篇中. 2.新建一个login.jsp.布局如下: 3.然后新建一个class,名为Login.java,代码如下: 4.在struts.xml文件中,代码如下: 5.新建message.jsp页面,代码如下: 6.OK,运行. **************************************************

登录验证随机验证码的实现

今天我们来学习登录验证中,如何生成随机验证码?验证码使用基本都是找现成的组件来实现,用代码实现这个简单功能主要是了解了解验证码内部的实现. 友情链接 生成随机验证码基本流程:http://www.cnblogs.com/yuanchenqi/articles/7468816.html 一.效果图展示 二.代码实现 1.首先用bootstrap布一个上图简单的页面 <div class="container"> <div class="row">

SpringMVC+Apache Shiro+JPA(hibernate)案例教学(三)给Shiro登录验证加上验证码

序: 给Shiro加入验证码,有多种方式,当然你也可以通过继承修改FormAuthenticationFilter类,通过Shiro去验证验证码.具体实现请百度: 应用Shiro到Web Application(验证码实现) 而今天我要说的,既然使用的SpringMVC,为什么不直接在Controller中就处理验证码验证,让事情变的更简单一点呢? 一.新建ValidateCode.java验证码工具类 package org.shiro.demo.util; import java.util.

登录验证,错误三次锁定帐号

需求:用户的登录验证,登录错误三次锁定用户,用户名和密码保存在文件中 编译环境:python3 流程图如下: 代码如下: file = open('lock.txt').readlines() name = input("username:\n>>").strip() lock = [] for i in file: line = i.strip('\n') lock.append(line) if name in lock: print(name, "已经被锁定

python_登录验证,三次机会

登录验证,三次机会,如何做? 1. 一个用户列表记录合法密码和用户名,一个小黑屋列表记录输错3次的用户, 一个中间列表记录所有用户输入,统计某个用户是否输错3次 2. 通过 in 判断一个元素是否在一个列表中,for循环把 输入验证hold住 #!/usr/bin/python3 def login(user_ku): lock_list = [] # 锁定用户库,3次登录失败进入的小黑屋 can_zhao = [] # 登录失败的录入,如果用count数出3次,进入锁定 while True:

SpringBoot注册登录(三):注册--验证账号密码是否符合格式及后台完成注册功能

SpringBoot注册登录(一):User表的设计点击打开链接SpringBoot注册登录(二):注册---验证码kaptcha的实现点击打开链接      SpringBoot注册登录(三):注册--验证账号密码是否符合格式及后台完成注册功能点击打开链接     SpringBoot注册登录(四):登录功能--密码错误三次,需要等待2分钟才能登录,固定时间内不能登录点击打开链接 SpringBoot注册登录(五):登录功能--Scheduling Tasks定时作业,用于某个时间段允许/不允

python后端注册登录验证小程序

一共四个文件 实现的功能是:注册账号,写到mysql数据库user(id,name,password,createtime)表中,password字段为使用md5加密后密码,并实现密码验证登录. 先上效果图: 1.注册 2.登录验证 3.数据库 说明:数据中24,25是只加密用户输入的密码字符串,18,19,26,27是加密的name,password,createtime三个字段内容的组合字符,20到23的没有加密. 1.配置文件config.py #mysql info for host,u

【ADO.NET】2、各种版本的 简单登录验证

一.简单登录验证(防SQL注入) GetString(序号) 返回某一列的值(当用户不记得列名序号时,可使用GetOrdinal()获取到序号)GetInt32(序号) 针对的是 int 字段,返回int字段的值GetOrdinal("列名") 根据列名得到序号 Console.WriteLine("请输入用户名:"); string Uname=Console.ReadLine(); Console.WriteLine("请输入密码:"); s

spring登录验证拦截器和根据用户角色登录

大家都知道spring的用户登录拦截器,确实省去了程序员不少的精力,下面说说我在项目中使用的感受. 德安微信管理后台是管理多个微信帐号的平台,登录到平台的用户有三个角色,游客和微信帐号管理员.超级管理员.超级管理员负责建立新的微信帐号.建立新的微信帐号管理员:微信帐号管理员负责维护微信菜单:微信图文消息:处理微信事件,发布产品介绍专题等:游客的功能有浏览.下单.手机号绑定等.基于此我们分配了三个用户角色:ROLE_TRAVELER.ROLE_ADMIN.ROLE_SUPER分别对应游客.微信帐号