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

小米智能家居跨区域协同控制技术指南

小米智能家居跨区域协同控制技术指南 【免费下载链接】ha_xiaomi_home Xiaomi Home Integration for Home Assistant 项目地址: https://gitcode.com/GitHub_Trending/ha/ha_xiaomi_home 随着智能家居设备数量的快速增长&#xff0c;多区域设备协同工作已成为提升居住体…...

一键捕获完整网页:Full Page Screen Capture 高效解决方案

一键捕获完整网页&#xff1a;Full Page Screen Capture 高效解决方案 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chrome-e…...

告别原生IDE!用HBuilderX 3.6.8+和UTS插件5分钟搞定安卓Toast功能

5分钟解锁安卓Toast&#xff1a;HBuilderXUTS插件的高效开发实战 还在为Android Studio的臃肿和配置繁琐头疼&#xff1f;UniApp开发者现在有了更优雅的选择。想象一下&#xff1a;用熟悉的TypeScript语法直接调用原生API&#xff0c;无需切换开发环境&#xff0c;5分钟实现安卓…...

宁德时代2026春招开启:6000+offer,这一轮机会在扩大

很多人现在还在犹豫一个问题&#xff1a;新能源是不是已经开始降温了&#xff1f;现在再投&#xff0c;还能不能拿到好的岗位&#xff1f;但从今年的招聘情况来看&#xff0c;趋势其实很清晰&#xff1a;岗位没有减少&#xff0c;而是在结构性增加。尤其是动力电池、储能、电池…...

汽车动力性能计算工具插件:一键测算电机需求与整车性能,工程师专属轻量级辅助软件

温馨提示&#xff1a;文末有联系方式插件核心功能亮点 本款汽车动力性系统专用计算小工具&#xff0c;可精准推演电机功率与扭矩需求&#xff0c;同步输出整车加速性能、最大爬坡度、最高稳定车速等关键动力参数&#xff0c;覆盖常规工况与典型驱动场景&#xff0c;满足前期方案…...

YOLO12快速部署指南:Gradio界面已配好,启动就能用

YOLO12快速部署指南&#xff1a;Gradio界面已配好&#xff0c;启动就能用 1. 为什么选择YOLO12镜像 YOLO12作为2025年最新发布的目标检测模型&#xff0c;带来了革命性的注意力为中心架构。这个预配置好的镜像让您无需任何复杂操作&#xff0c;就能立即体验最先进的目标检测技…...

告别CANoe依赖:手把手教你用Visual Studio 2019为UDS $27服务开发通用DLL(附Python调用脚本)

从零构建UDS安全访问DLL&#xff1a;Visual Studio 2019实战指南与Python无缝集成 在汽车电子诊断领域&#xff0c;UDS&#xff08;Unified Diagnostic Services&#xff09;协议的安全访问服务&#xff08;$27服务&#xff09;是保护ECU敏感操作的核心机制。传统方案往往依赖C…...

4月底就要交论文,现在开始降AI率来得及吗?完整应急方案

4月底就要交论文&#xff0c;现在开始降AI率来得及吗&#xff1f;完整应急方案 今天是4月1日。 如果你的论文要在4月底提交&#xff0c;现在翻出来一查&#xff0c;AI率50%&#xff0c;或者知网标红一片——你可能已经开始冒冷汗了。 先别慌。来得及&#xff0c;但要马上开始&a…...

OpenMP实战避坑:你的C++并行程序为什么跑得比单线程还慢?

OpenMP实战避坑&#xff1a;你的C并行程序为什么跑得比单线程还慢&#xff1f; 第一次在C代码里加上#pragma omp parallel for时&#xff0c;那种期待性能飙升的心情&#xff0c;相信每个开发者都经历过。但现实往往很骨感——程序运行速度不升反降&#xff0c;甚至出现莫名其妙…...

Spring Boot项目实战:用ShardingSphere-JDBC 5.3.2搞定PostgreSQL分库分表,附完整配置流程

Spring Boot与ShardingSphere-JDBC深度整合&#xff1a;PostgreSQL分库分表实战指南 当你的应用用户量突破百万级&#xff0c;单表数据量超过千万行时&#xff0c;是否经常遇到查询响应变慢、写入性能下降的问题&#xff1f;作为经历过多次系统扩容的老兵&#xff0c;我想分享一…...