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

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

Spring Security 认证流程——补充

一、认证流程概述 Spring Security 的认证流程基于 过滤器链&#xff08;Filter Chain&#xff09;&#xff0c;核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤&#xff1a; 用户提交登录请求拦…...

离线语音识别方案分析

随着人工智能技术的不断发展&#xff0c;语音识别技术也得到了广泛的应用&#xff0c;从智能家居到车载系统&#xff0c;语音识别正在改变我们与设备的交互方式。尤其是离线语音识别&#xff0c;由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力&#xff0c;广…...