当前位置: 首页 > 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…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

高防服务器价格高原因分析

高防服务器的价格较高&#xff0c;主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因&#xff1a; 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器&#xff0c;因此…...

32单片机——基本定时器

STM32F103有众多的定时器&#xff0c;其中包括2个基本定时器&#xff08;TIM6和TIM7&#xff09;、4个通用定时器&#xff08;TIM2~TIM5&#xff09;、2个高级控制定时器&#xff08;TIM1和TIM8&#xff09;&#xff0c;这些定时器彼此完全独立&#xff0c;不共享任何资源 1、定…...

规则与人性的天平——由高考迟到事件引发的思考

当那位身着校服的考生在考场关闭1分钟后狂奔而至&#xff0c;他涨红的脸上写满绝望。铁门内秒针划过的弧度&#xff0c;成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定"&#xff0c;构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...

怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)

+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...