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

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

node.js的初步学习

那什么是node.js呢&#xff1f; 和JavaScript又是什么关系呢&#xff1f; node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说&#xff0c; 需要在node.js的环境上进行当JavaScript作为前端开发语言来说&#xff0c;需要在浏览器的环境上进行 Node.js 可…...