当前位置: 首页 > news >正文

Python中设计注册登录代码

import hashlib

import json

import os

import sys

 

# user interface 用户是界面

UI = """

用户登录系统

1.注册

2.登陆

0.退出

"""

 

 

# 读取users.bin

def load(path):

    return json.load(open(path, "rt"))

 

 

# 保存user.bin

def save(dic, path: str):

    json.dump(dic, open(path, "wt"))

 

 

while True:

    print(UI)

    num = input("请输入你的选择:")

    if num == "1":

        # 从users.bin读取已有的账户数据,用户注册完以后,将新账户增添到已有数据中保存。

        if os.path.exists("users.bin"):

            dc = load("users.bin")

        else:

            dc = {}

        account = input("请输入账户:")

        passwd = input("请输入密码:")

        confirm = input("请确认密码")

        # 检查用户的账户是否已存在 如果存在 则提醒用户重新输入账户密码

        if dc.get(account):

            print("账户已存在请重新输入")

        # 前后两次密码 是否一致?如果一致直接保存用户的注册信息

        elif passwd == confirm:

            # 使用MD5将用户密码假面

            md5 = hashlib.md5(passwd.encode())

            encrypt = md5.hexdigest()

            dc[account] = encrypt

            save(dc, "users.bin")

            print("注册成功")

    elif num == "2":

        print("进入到登录环节")

        pass

        account=input("请输入账户")

        pwd=input("请输入密码")

        dc=load("users.bin")

        if dc.get(account):

            md5=hashlib.md5(pwd.encode())

            encrypt_pwd=md5.hexdigest()

            if dc[account]==encrypt_pwd:

                print("登录成功")

            else:

                print("登录失败")

        else:

            print("账户或密码错误")

        # 输入账户密码

        # 读取users.bin得到一个字典

        # dc.get判断用户的账户是否存在

        # dc[account] == 输入的密码

        # 登录成功 否则登录时失败

    else:

         sys.exit()

 

import hashlib

import json

import os

import sys

 

# user interface 用户是界面

UI = """

用户登录系统

1.注册

2.登陆

0.退出

"""

 

 

# 读取users.bin

def load(path):

    return json.load(open(path, "rt"))

 

 

# 保存user.bin

def save(dic, path: str):

    json.dump(dic, open(path, "wt"))

 

 

while True:

    print(UI)

    num = input("请输入你的选择:")

    if num == "1":

        # 从users.bin读取已有的账户数据,用户注册完以后,将新账户增添到已有数据中保存。

        if os.path.exists("users.bin"):

            dc = load("users.bin")

        else:

            dc = {}

      account = input("请输入账户:")

    passwd = input("请输入密码:")

    confirm = input("请确认密码")

    # 检查用户的账户是否已存在 如果存在 则提醒用户重新输入账户密码

    if dc.get(account):

        print("账户已存在请重新输入")

    # 前后两次密码 是否一致?如果一致直接保存用户的注册信息

    elif passwd == confirm:

        # 使用MD5将用户密码假面

        md5 = hashlib.md5(passwd.encode())

        encrypt = md5.hexdigest()

        dc[account] = encrypt

        save(dc, "users.bin")

        print("注册成功")

elif num == "2":

    print("进入到登录环节")

    pass

    account=input("请输入账户")

    pwd=input("请输入密码")

    dc=load("users.bin")

    if dc.get(account):

        md5=hashlib.md5(pwd.encode())

        encrypt_pwd=md5.hexdigest()

        if dc[account]==encrypt_pwd:

            print("登录成功")

        else:

            print("登录失败")

    else:

        print("账户或密码错误")

    # 输入账户密码

    # 读取users.bin得到一个字典

    # dc.get判断用户的账户是否存在

    # dc[account] == 输入的密码

    # 登录成功 否则登录时失败

else:

     sys.exit()

 

account = input("请输入账户:")

    passwd = input("请输入密码:")

    confirm = input("请确认密码")

    # 检查用户的账户是否已存在 如果存在 则提醒用户重新输入账户密码

    if dc.get(account):

        print("账户已存在请重新输入")

    # 前后两次密码 是否一致?如果一致直接保存用户的注册信息

    elif passwd == confirm:

        # 使用MD5将用户密码假面

        md5 = hashlib.md5(passwd.encode())

        encrypt = md5.hexdigest()

        dc[account] = encrypt

        save(dc, "users.bin")

        print("注册成功")

elif num == "2":

    print("进入到登录环节")

    pass

    account=input("请输入账户")

    pwd=input("请输入密码")

    dc=load("users.bin")

    if dc.get(account):

        md5=hashlib.md5(pwd.encode())

        encrypt_pwd=md5.hexdigest()

        if dc[account]==encrypt_pwd:

            print("登录成功")

        else:

            print("登录失败")

    else:

        print("账户或密码错误")

    # 输入账户密码

    # 读取users.bin得到一个字典

    # dc.get判断用户的账户是否存在

    # dc[account] == 输入的密码

    # 登录成功 否则登录时失败

else:

     sys.exit()

93a7f3d6ec724f4a9922639b6a4b9709.png

 5a42a40336634330af03aa359b55a37a.png

91dccf8672604bbe8c790c6a336bf571.png 

 

相关文章:

Python中设计注册登录代码

import hashlib import json import os import sys # user interface 用户是界面 UI """ 用户登录系统 1.注册 2.登陆 0.退出 """ # 读取users.bin def load(path): return json.load(open(path, "rt")) # 保存user.bin def save(dic…...

AI伦理和安全风险管理终极指南

人工智能(AI)正在迅速改变各个领域的软件开发和部署。驱动这一转变的两个关键群体为人工智能开发者和人工智能集成商。开发人员处于创建基础人工智能技术的最前沿,包括生成式人工智能(GenAI)模型、自然语言处理&#x…...

golang testing使用

testing包服务于自动化测试 基本测试 Table Drvien Test 基于表的测试通过表形式进行测试每种情况的输入和期望输出,从而测试程序的正确性 func TestFib(t *testing.T) {var fibTests []struct {in int // inputexpected int // expected result}{{1, 1}…...

在Excel中使用正则提取单元格内容

在办公自动化的浪潮中,Excel 作为数据处理的利器,一直在不断进化。最近,我注意到了不坑盒子Office插件一个非常实用的功能更新——bk_regex_string 公式。这个功能对于我们这些日常需要处理大量文本和数据的办公人员来说,无疑是一…...

SQL查询语句(二)逻辑运算关键字

上一篇文章中我们提到了条件查询除了一些简单的数学符号之外,还有一些用于条件判断的关键字,如逻辑判断 关键字AND,OR,NOT和范围查找关键字BETWEEN,IN等;下面我们来介绍一些这些关键字的用法以及他们所表达的含义。 目录 逻辑运算关键字 AND…...

矿山机械自动化中的激光雷达技术探索

在矿山机械自动化技术的快速发展中,激光雷达技术作为其关键组成部分,正发挥着越来越重要的作用。本文将深入探讨激光雷达在矿山机械自动化中的应用,以及其所面临的挑战与未来发展趋势。 一、激光雷达在矿山机械自动化中的应用 激光雷达技术…...

MOSFET场效应管栅极驱动电流的计算

MOSFET驱动 MOSFET场效应管是电压驱动器件,输入有电容,因此为可靠驱动MOSFET,栅极需要施加较大的驱动电流。 功率MOSFET开关模型 该模型显示了影响开关性能的最重要的寄生器件。 栅极所需驱动电流计算公式 一个很重要的参数是计算栅极驱…...

Python 爬虫:Spring Boot 反爬虫的成功案例

前言 在当今数字化时代,网络数据成为了信息获取和分析的重要来源之一。然而,随着网络数据的广泛应用,爬虫技术也逐渐成为了互联网行业的热门话题。爬虫技术的应用不仅可以帮助企业获取有价值的信息,还可以用于数据分析、市场研究…...

计算机毕业设计Python+Vue.js天气预测系统 中国气象质量采集与可视化 天气数据分析 天气可视化 天气大数据 天气爬虫 大数据毕业设计

摘要 随着科技技术的不断发展,人民物质生活质量不断提高,我们越来越关注身边的气象、空气等地理环境。对于普通居民我们会选择合适的气象进行出游,提高精神层面的生活质量;对于企业会关注气象变换状况,来定制相关的生产…...

【busybox记录】【shell指令】tr

目录 内容来源: 【GUN】【tr】指令介绍 【busybox】【tr】指令介绍 【linux】【tr】指令介绍 使用示例: 转换字符 - 默认 转换字符 - 不翻译指定字符数组 此指令目前接触少,用得少,把精力放到其他常用指令上 常用组合指令…...

Mac虚拟机软件哪个好用 mac虚拟机parallels desktop有什么用 Mac装虚拟机的利与弊 mac装虚拟机对电脑有损害吗

随着多系统使用需求的升温,虚拟机的使用也变得越来越普遍。虚拟机可以用于创建各种不同的系统,并按照要求设定所需的系统环境。另外,虚拟机在Mac电脑的跨系统使用以及测试软件系统兼容性等领域应用也越来越广泛。 一、Mac系统和虚拟机的区别 …...

Type-C转音频(USB2.0数据传输)+PD充电芯片乐得瑞LDR6500/LDR6023

LDR6500 USB-C DRP 接口 USB PD 通信芯片概述 Type-C转音频(USB2.0数据传输)PD充电芯片乐得瑞LDR6500LDR6500是乐得瑞科技针对USB Type-C标准中的Bridge设备而开发的USB-C DRP(Dual Role Port,双角色端口)接口USB PD(Power Deliv…...

【busybox记录】【shell指令】expand

目录 内容来源: 【GUN】【expand】指令介绍 【busybox】【expand】指令介绍 【linux】【expand】指令介绍 使用示例: 把制表符转化为空格 - 默认输出 把制表符转化为空格 - 修改制表符转空格的个数 把制表符转化为空格 - 修改制表符转空格的个数…...

软件测试—— 接口测试之通讯流程相关概念

通讯流程 1、协议 通讯规则 2、HTTP协议 协议的一种 3、接口规范文档 如何发请求的要求文档,获取什么响应内容的说明文档(相当于菜单)...

AT32 雅特力CAN详细使用说明配置细则

CAN 过滤器使用说明 CAN 过滤器相当于关卡,每当收到一条报文时,CAN 要先将收到的报文从这些过滤器上"过滤"一下,能通 过的报文是有效报文,收进相关联 FIFO(FIFO0 或 FIFO1),不能通过的…...

【机器学习】集成方法---Boosting之AdaBoost

一、Boosting的介绍 1.1 集成学习的概念 1.1.1集成学习的定义 集成学习是一种通过组合多个学习器来完成学习任务的机器学习方法。它通过将多个单一模型(也称为“基学习器”或“弱学习器”)的输出结果进行集成,以获得比单一模型更好的泛化性…...

AI大模型探索之路-训练篇11:大语言模型Transformer库-Model组件实践

系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…...

鸿蒙内核源码分析(工作模式篇) | CPU的七种工作模式

本篇说清楚CPU的工作模式 工作模式(Working mode) 也叫操作模式(Operating mode)又叫处理器模式(Processor mode),是 CPU 运行的重要参数,决定着处理器的工作方式,比如如何裁决特权级别和报告异…...

5月6(信息差)

🌍一次预测多个token,Meta新模型推理加速3倍,编程任务提高17% https://hub.baai.ac.cn/view/36857 🎄 LeetCode 周赛超越 80% 人类选手,推理性能超 Llama3-70B。 ✨ 我国量子计算机实现“四算合一” 实现通算、…...

Qt在任务栏图标和系统托盘图标上显示红点

在任务栏图标上显示红点 关键类&#xff1a;QWinTaskbarButton #include <QWinTaskbarButton>QPointer<QWinTaskbarButton> taskbarBtn nullptr; if (!taskbarBtn) {taskbarBtn new QWinTaskbarButton(window);taskbarBtn->setWindow(window->windowHand…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...