• 周末综合作业


    周末综合作业:(代码块挡住的注释部分可以点击代码块然后按键盘‘→’查看)

    2.1:编写用户登录接口

    1、输入账号密码完成验证,验证通过后输出"登录成功"

    user_info = ['lance','123']
    username = input('请输入账号:')
    password = input('请输入密码:')
    if username == user_info[0] and password == user_info[1]:
        print('登录成功')
    else:
        print('账号密码错误')
    

    2、可以登录不同的用户

    # 方法一
    user_info = [
        ['lance1','123'],
        ['lance2','123'],
        ['lance3','123'],
    ]
    username = input('请输入账号:')
    password = input('请输入密码:')
    for i in user_info:
        if i[0] ==username and i[1] == password:
            print('登录成功')
            break
        else:
            print('账号密码错误')
            break
    
    # 方法二:多用户推荐字典类型
    user_info = {
        'lance1':'123',
        'lance2':'123',
        'lance3':'123',
    }
    username = input('请输入账号:')
    password = input('请输入密码:')
    if username in user_info.keys() and password in user_info.values():
        print('登录成功')
    else:
        print('账号密码错误')
    

    3、同一账号输错三次锁定,(提示:锁定的用户存入文件中,这样才能保证程序关闭后,该用户仍然被锁定)

    user_info = {
        'lance1': '123',
        'lance2': '123',
        'lance3': '123',
    }
    tag = 0
    i = 0
    while i < 3:
        username = input('请输入账号:')
        if username in user_info.keys():
            password = input('请输入密码:')
            if password in user_info.values():
                with open(r'db.txt', mode='rt', encoding='utf-8') as f:  # 输入账号密码后判断该账号是否在黑名单当中
                    msg = f.read().split()
                    for line in msg:
                        x, y = line.split(':')
                        if x == username:
                            print('对不起,你的账号已经被锁定!')
                            break
                    else:
                        print('登录成功')
                break
            else:
                print('密码输入错误,请重新输入!')
                i += 1
                if i == 3:
                    print('您已连续输错三次密码,该账号锁定,无法登陆')
                    with open(r'db.txt',mode='at',encoding='utf-8') as f:
                        f.write('{x}:{y}
    '.format(x=username,y=user_info.get(username)))  # 确认三次输入密码之后,将该账号和所其对应的密码一起拉入黑名单,需要注意,是初始确定的密码,不是输入密码!!
                        f.close()
        else:
            print('账号错误')
    

    2.2:编写程序实现用户注册后,可以登录(一次性,每次运行需重新注册)

    msg = """
    0 退出
    1 登录
    2 注册
    """
    print(msg)
    q = 0
    with open('data.txt', mode='wt', encoding='utf-8') as f:  # 主要为了防止用户不注册直接登陆,所以提前创建账号信息文件
        f.write('')
        f.close()
    while True:
        cmd = input('请输入命令:>>').strip()
        if not cmd.isdigit():
            print('必须输入命令编号的数字,傻叉')
            continue
        if cmd == '0':
            break
        elif cmd == '1':
            while q < 3:
                user_name = input('请输入您的账号:').strip()
                pass_word = input('请输入您的密码:').strip()
                with open('data.txt', mode='rt', encoding='utf-8') as f:
                    i = f.read().split()
                    if i != '':  # 与一开始创建信息文件相呼应,好做if判断,如果啥都没有就说明还没有注册需要提醒用户
                        for c in i:
                            a, b = c.split(':')
                            if user_name == a and pass_word == b:
                                print('登陆成功')
                                break
                            else:
                                q +=1
                        else:
                            print('登陆失败')
                        break
                    else:
                        print('你还没有注册账号哦,先注册再登录吧!')
                        break
            else:
                print('连续三次登录失败')
    
        elif cmd == '2':
            username = input('请输入您的注册账号:').strip()
            password = input('请输入您的注册密码:').strip()
            with open('data.txt', mode='at', encoding='utf-8') as f:
                f.write('{x}:{y}
    '.format(x=username, y=password))  # 在写入后面要加
    哦,要不然注册多用户切分列表会出大问题
                f.close()
        else:
            print('输入的命令不存在')
    

    反思:

      自己之前培养的习惯不能丢,不管是什么代码,都需要写程序流程图加快速度!!

      写代码不够熟练,并不能各种随意转换!

      学的内容尚且还少,还有许多瑕疵,和我的想法还有点偏差,以后学到了回来补回!!!

  • 相关阅读:
    Solon 1.6.36 发布,更现代感的应用开发框架
    OrchardCore Headless建站拾遗
    阿里云IoT流转到postgresql数据库方案
    C#中检查null的语法糖
    [翻译] 使用 TensorFlow 进行分布式训练
    [源码解析] TensorFlow 分布式之 MirroredStrategy
    [源码解析] TensorFlow 分布式 DistributedStrategy 之基础篇
    [源码解析] TensorFlow 之 分布式变量
    WebSocket 协议详解
    golang常用库包:Go依赖注入(DI)工具wire使用
  • 原文地址:https://www.cnblogs.com/Lance-WJ/p/12492241.html
Copyright © 2020-2023  润新知