一.环境:

        python3 + vscode

二. 文件:

  1. 【程序文件】用户/管理员~注册/登陆.py
  2. 【启动标记文件】flag.txt  ->  文件内容:0

三.程序步骤分块:

  1. 主程序入口
  2. 初次启动后,初始化文件更改标记

  3. 启动后信息初始化

  4. 打印登陆菜单

  5. 用户选择

  6. 管理员登陆

  7. 用户注册

  8. 用户登陆

四.程序:

import os# 定义一个全局变量保存名字
file_name = '普通用户变量保存名字'# 程序入口
def main():# 打开文件with open(r'flag.txt', mode='rt', encoding='utf-8') as flag:# 读取文件word = flag.read()if word == '0':print('首次启动!')c_flag()                                                                        # 更改标记为1init()                                                                          # 初始化资源print_login_menu()                                                              # 打印登陆菜单user_selsct()                                                                   # 选择用户elif word == '1':print('欢迎会回来!')print_login_menu()user_selsct()else:print('初始化参数错误!')# 初次启动后,标记文件更改
def c_flag():with open(r'flag.txt', mode='wt', encoding='utf-8') as flag:flag.write('1')# 启动后信息初始化
def init():root = {'r_name': 'zcy', 'r_pwd': '117'}                                            # 字典存放管理员账号信息with open(r'u_root.txt', mode='wt', encoding='utf-8') as u_root:                    # 创建并打开管理员账号的文件u_root.write(str(root))                                                         # 写入管理员信息if not os.path.exists(file_name):                                                   # 判断是否存在存放普通用户信息的文件夹os.mkdir(file_name)                                                             # 没有则创建# 打印登陆菜单
def print_login_menu():print('用户选择'.center(10, '-'))print('1.管理员登陆')print('2.普通用户登陆')print(''.center(10, '-'))# 用户选择
def user_selsct():while True:user_type_selext = input('请选择用户类型:').strip()if user_type_selext == '1':root_login()                                            # 管理员登陆breakelif user_type_selext == '2':                               # 普通用户登陆while True:select = input('是否需要注册?(y/n):').strip()if select == 'y' or select == 'Y':# print('用户注册')user_register()                                # 用户注册user_login()breakelif select == 'n' or select == 'N':# print('用户登陆')user_login()                                  # 用户登陆breakelse:print('输入有误,请重新输入')breakelse:print('请输入已有的编号')# 管理员登陆
def root_login():while True:print('---管理员登陆---')root_number = input('请输入你的账号:').strip()root_password = input('请输入你的密码:').strip()with open('u_root.txt', mode='rt', encoding='utf-8') as u_root:                     # 打开存放管理员信息的文件root = eval(u_root.read())                                                      # 读取管理员信息,并把读取成字符串的信息转换成字典# 账号信息验证if root_number == root['r_name'] and root_password == root['r_pwd']:print('登陆成功')breakelse:print('验证失败!')# 用户注册
def user_register():print('---用户注册---')while True:user_id = input('请输入你的账号:').strip()user_pwd = input('请输入你的密码:').strip()user_name = input('请输入你的昵称:')# 获取file_name目录中所有的文件,os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。user_list = os.listdir(file_name)# 遍历列表,判断user_id是否在列表中if user_id not in user_list:user = {"u_id": user_id, "u_pwd": user_pwd, "u_name": user_name}user_path = file_name + '/' + user_id                                       # 创建用户文件with open(user_path, mode='wt', encoding='utf-8') as user_file:             # 写入用户信息user_file.write(str(user))breakelse:print('账号已存在,请重新注册!')# 用户登陆
def user_login():while True:print('---用户登陆---')user_id = input('请输入你的账号:').strip()user_pwd = input('请输入你的密码:').strip()# 获取file_name目录中所有的文件,os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。user_list = os.listdir(file_name)# 遍历列表,判断user_id是否在列表中if user_id in user_list:print('登陆中...')# 构建用户路径user_path = user_path = file_name + '/' + user_id# 打开路径对应用户文件,读取,转换字典,关键字取密码进行判断if user_pwd == eval(open(user_path, mode='rt', encoding='utf-8').read())['u_pwd']:print('登陆成功')breakelse:print('登陆失败,账号或密码错误,请重新输入')else:print('账号不存在,请先注册!')breakif __name__ == '__main__':main()

【注】:此为个人学习作业练习

Python实现用户注册登录功能相关推荐

  1. python写appium_案例分享,Python +appium做登录功能

    原标题:案例分享,Python +appium做登录功能 Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,同时又是一个跨平台的工具:它允许测试人员在不同 ...

  2. Laravel5.8入门系列二,快速实现用户注册登录功能

    一 XAMPP 环境配置 这次我们需要开始使用继承开发环境了,因为我们需要使用数据库,完成用户的登录注册功能. 首先要配置好XAMPP环境,我们需要添加一个vhost,指向blog5.8的public ...

  3. PHP连接数据库实现用户注册登录功能

    PHP连接数据库实现用户注册登录功能 代码如下 dbconnect.php login.html register.php login.php index.php logout.php ) 代码如下 ...

  4. 采用Node.js+Express+Jade实现用户注册登录功能

    Node.js是一个JavaScript运行环境,发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装.V8引擎执行Javascript的速度非常快,性能非常好. ...

  5. java登陆注册 mysql_Java+mysql用户注册登录功能

    最近刚刚开始学习mysql,所以就写了这个很基本的用户注册登录的功能来练练手.虽然这个很简单,但是我还是看到了自己学习的进步,很开心.哈哈哈. 这里要注意数据表的建立: 直接上代码吧,里面注释很详细了 ...

  6. Python实现用户注册登录校验功能(面向对象方法)

    案例需求: <用户登录>分别提示用户输入用户名和密码,用户名为seven,密码为123,或者用户名为alex,密码为456.提示登录成功,并结束程序.否则提示失败原因,并提示重新输入,最多 ...

  7. python程序下载腾讯企业邮箱附件_获取腾讯企业邮箱通讯录python脚本(带登录功能)...

    之前的 帖子 加入了 @ sdc1992 提供的登录部分 根据邮箱和密码,获取企业通讯录 运行后会生成两个文件 一个只包含邮箱,可以用于后续爆破 一个为部门名称 和 部门下的员工邮箱的树形结构,可以方 ...

  8. PHP+MYSQL实现简单的用户注册登录功能

    有必要用一下php+mysql实现一下这个"最基础"的用户功能,(虽然开发可能会用后端云) 基础结构 html+css+JavaScript作前端渲染: php作为后端,mysql ...

  9. eclipse连接数据库并实现用户注册登录功能

    文章目录 MySQL配置环境变量 navicat 部署tomcat 导入驱动 修改代码 连接mysql数据库 运行: MySQL配置环境变量 mysql肯定是必不可少的,这个就不用多说了,自己去官网下 ...

最新文章

  1. numpy库:常用基本
  2. 想拥有最新的微软嵌入式技术 就赶快加入微软嵌入式专家社区吧!
  3. EasyTable.js,令html的table布局变得非常简单!
  4. 【Matlab 控制】利用 Simulink 对微分代数方程建模
  5. 关于编译GITHUB上的工程
  6. Windows优化大师的一点研究
  7. 软件开发有哪些规范和标准_高品质、标准化——四维图新自动驾驶地图通过ASPICE CL2认证...
  8. 放弃手机后!罗永浩今年已带货19亿元
  9. 2018--Linux面试题
  10. 机器学习——图像分类
  11. 每天吃多少才不会胖?食物和卡路里对照表
  12. 神经网络,英文字母识别
  13. 从文件结构认识HLS
  14. uniCloud云开发平台简介及云函数数据库基础操作练习(新人首作,欢迎支持
  15. win10查看电池详细使用情况报告(查看损耗等)以及无法启动服务问题
  16. 做月饼-制作过程及图文笔记
  17. 图 邻接矩阵幂的含义 离散数学定理14.11
  18. java程序模拟红篮球概率事件
  19. ubuntu E: Unable to locate package xxxxxxx解决办法
  20. 一文彻底搞懂MySQL基础:B树和B+树的区别

热门文章

  1. mac 下作流程图工具omnigraffle
  2. Mac流程图工具-StarUML介绍
  3. Java基础知识总结(二)更新ing。。。
  4. 基于vue-node的共享车位管理系统的设计与实现_kaic
  5. JavaScript深复制和浅复制
  6. Vc - Qt - 实现加载图片并显示到窗口中
  7. js-面试官想知道你有多理解call,apply,bind-不看后悔系列
  8. 推荐几个优质技术公众号
  9. 认真推荐9个优质的技术公众号
  10. 矩阵乘法结合律的理解