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

线性查找表的应用:用户登录注册程序

线性查找表是很简单的数据结构和算法。网站的用户登录注册时是基本的功能。本文首先给出线性查找表的基本实现,然后给出在用户登录注册的程序流程图,并将线性查找表应用到用户查询这一具体任务,并基于 Python 语言在控制台实现用户注册、登录的模拟程序。

线性查找表

给定一个数组,比如 12,34,56,78, 查找给定的数字 34 是否在里面,如果在,那么返回索引, 否则返回 -1。

def linear_search(num_list: list, num: int) -> int:"""Search given number in given list and return correspoinding index.Parameters----------num_list : listThe list of numbers to search through.num : intThe number to search for in the list."""for i, n in enumerate(num_list):if n == num:return ireturn -1

测试代码:

if __name__ == '__main__':while True:print("欢迎使用线性查找".center(30, '~'))num_str = input('请输入数组:')num_list = num_str.split(',')num_list = [int(_) for _ in num_list]num = int(input('请输入查找的目标数:'))index = linear_search(num_list, num)print(''.center(38, '='))if index == -1:print('查找的数不存在')breakelse:print(f'查找的数存在,索引为{index}')

用户登录、注册程序

用户登录和注册这两个动作,都涉及线性查找:查找用户名是否存在。 可以应用上一节的代码,变量重命名即可, 思想是一致的。

流程图

在这里插入图片描述

技术点

获取用户输入,并且带提示信息:

name = input('请输入用户名')

判断用户名字是否存在:也就是线性表的查找

    def find_user(self, name):for index, user in enumerate(self.user_list):if user.name == name:return indexreturn -1

代码实现

class User:def __init__(self, name, password):self.name = nameself.password = passwordclass UserService:def __init__(self):self.user_list = []def find_user(self, name):for index, user in enumerate(self.user_list):if user.name == name:return indexreturn -1def exists_user(self, name):return self.find_user(name) >= 0def register(self):# 获取数据name = input('账号: ')password = input('密码: ')# 存储数据if self.find_user(name) >= 0:print('用户已存在, 请重新输入')else:user = User(name, password)self.user_list.append(user)# 返回注册结果print('已注册成功')def login(self):# 获取数据name = input('账号: ')password = input('密码: ')# 校验数据user = User(name, password)index = self.find_user(name)if index == -1:print('账号不存在,请重新输入')elif self.user_list[index].password != password:print('密码错误, 请重新输入')else:# 返回登录结果print('登录成功')def run(self):while True:action = input('注册 or 登录: ')if action == '注册':self.register()elif action == '登录':self.login()else:print('命令输入错误,请重新输入')if __name__ == '__main__':service = UserService()service.run()

References

  • https://blog.csdn.net/qq_42568323/article/details/113565739
  • https://www.bilibili.com/video/BV1bG4y127js

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 分页查询--条件查询
  • 可以根据手机的折叠状态改变播放音效:nova Flip 的妙趣音效
  • iOS 收集打印日志
  • 进程程序替换
  • 亚马逊云(AWS)技术深度解析及代码使用案例
  • 华为od全面介绍!!!
  • Redis/ElaticSearch/kafka入门
  • 每日OJ_牛客_mkdir(排序+模拟)
  • android 离线的方式使用下载到本地的gradle
  • 【云原生系列之SkyWalking的部署】
  • 【QNX+Android虚拟化方案】112 - 获取 88Q5152 Switch Port1、Port2 端口的主从模式 / 传输速率 / 链路状态
  • C++系列-STL容器之list
  • C++中的异常处理与资源管理
  • 银河麒麟v10-sp3-x86系统安装k8s-1.30.4
  • 如何判断儿童是否患有自闭症
  • [译] 怎样写一个基础的编译器
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • C语言笔记(第一章:C语言编程)
  • django开发-定时任务的使用
  • JavaScript异步流程控制的前世今生
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • Redash本地开发环境搭建
  • 给Prometheus造假数据的方法
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 人脸识别最新开发经验demo
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 思维导图—你不知道的JavaScript中卷
  • 王永庆:技术创新改变教育未来
  • 我有几个粽子,和一个故事
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​io --- 处理流的核心工具​
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • # wps必须要登录激活才能使用吗?
  • # 达梦数据库知识点
  • #07【面试问题整理】嵌入式软件工程师
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (ZT)一个美国文科博士的YardLife
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (层次遍历)104. 二叉树的最大深度
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (利用IDEA+Maven)定制属于自己的jar包
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (强烈推荐)移动端音视频从零到上手(上)
  • (算法)Game
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (状压dp)uva 10817 Headmaster's Headache
  • (最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)
  • ..回顾17,展望18
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET CLR基本术语
  • .NET 使用 XPath 来读写 XML 文件
  • .NET/C#⾯试题汇总系列:集合、异常、泛型、LINQ、委托、EF!(完整版)
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • [000-002-01].数据库调优相关学习