码迷,mamicode.com
首页 > 其他好文 > 详细

三次登录验证以及购物车

时间:2019-08-17 19:49:17      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:索引   dig   port   else   str   默认   from   成功   for   

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(不是数字,请重新输入)

参考代码

 

三次登录验证以及购物车

标签:索引   dig   port   else   str   默认   from   成功   for   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!