吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1903|回复: 16
收起左侧

[Python 转载] 之前写了个python简单实现的用户登陆小程序,请大家指教

  [复制链接]
关山月明 发表于 2020-7-21 18:21
[Python] 纯文本查看 复制代码
##用户平台信息登陆系统

import os
import json
from time import sleep

def creat_user():
        f = open(r"用户信息表.txt","r+")
        js = f.read()
        js = js.replace("\n","")
        js = js.replace("\'","\"")
        js = js.replace("}{",",")#全部都是为了json格式转换成字典,我也是醉了……
        comfirm = json.loads(js)
        comfirm = comfirm.keys()
        i = 2
        j = 2#跳出验证循环的阻断变量
        while j > 1:
                new_name = str(input("请输入你想要注册的账号:"))
                if new_name in comfirm:#判断是否存在此账号了!
                    print("账号已存在!!请重新输入!!\a\n")
                elif "" ==new_name or " " in new_name:
                    print("请输入合法字符,不允许有空白字符和不输入字符!")
                else:
                    j = 1#如果成功则跳出循环
                    
            #用户账号验证过程
                    
        while i > 1:
                new_password = str(input("请输入你的密码:"))
                comfirm_password = str(input("请再次输入你的密码:"))
                if "" == new_password or " " in new_password:
                    print("请输入合法字符,不允许有空白字符和不输入字符!")
                    continue
                else:
                    if new_password == comfirm_password:
                        r = "注册成功!!请保管好您的账号和密码!"
                        i = 1
                    else:
                        print("两次密码不一致,请重新输入你的密码:\n")
            #用户密码验证过程

        new_user = dict()
        new_user[new_name] = new_password
        f.write(str(new_user))#如果用json方法也是可以的
        f.close()#关闭文件惹
        return  r
def login():
     i = 2#跳出登陆循环的阻断变量
     j = ""#判断用户是否创建新账号的变量
     g = 2#创建新账号的循环阻断变量
     h = 2
     f = open(r"用户信息表.txt","r")
     js = f.read()
     js = js.replace("\n","")
     js = js.replace("\'","\"")
     js = js.replace("}{",",")#全部都是为了json格式转换成字典,我也是醉了……
     comfirm = json.loads(js)
     comfirm_values = comfirm.values()
     comfirm_keys = comfirm.keys()
     f.close()#用完即关闭文件
     
     while True: 
         login_user = str(input("请输入登录账号:"))
         if "" ==login_user or " " in login_user:
             print("请输入正确用户账号!\n")
             continue
         elif login_user not in comfirm_keys:
             while True:
                 j = str(input("账号不存在!!是否要新建账号(y/n)\a:"))
                 if len(j) == 0 or " " in j:
                     print("输入有误,请重新输入!!\n")
                 elif j == "Y"or j == "y":
                     if creat_user() == "注册成功!!请保管好您的账号和密码!":
                         break
                 elif j == "N" or j == "n":
                      break
                 else:
                     print("不能输入Y\\N(不区分大小写)以外的字符!!\n")
             print("正在跳转到登录页面……\n")
             sleep(1)
             login()
             break
         while h > 1:
             login_password = str(input("请输入登录密码:"))
             if login_password == comfirm[login_user]:
                     print("登录成功,欢迎回来!\n\a")
                     break#跳出密码输入错误,重新输入的循环
                    
             else:
                 print("密码错误!请重新输入\n")
         break
def menus():
    
    print("\t菜单选择:\n")
    print("0.注册新账号")
    print("1.登陆账号")
    print("2.退出系统")

    while True: 
        menu = str(input())
        if "" == menu or " " in menu or menu.isalpha():
            print("输入有误!\n")
            continue
        elif int(menu) == 0:
            creat_user()
            menus()
        elif int(menu) == 1:
            login()
            menus()
        elif int(menu) == 2:
            exit()
        
menus()

用户信息表.txt (42 Bytes, 下载次数: 19)


那个txt文件一定要放在源代码相同文件夹下。如果没有,新建了新文件夹会导致读取数据异常而中断程序

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

mmmm111 发表于 2020-7-21 21:47
星间旅行 发表于 2020-7-21 19:20
一般建议Python的入口函数这样写更好哦

[mw_shl_code=python,true]

确实如此
az12az 发表于 2020-7-21 18:36
沉默之剑 发表于 2020-7-21 18:39
 楼主| 关山月明 发表于 2020-7-21 18:41
沉默之剑 发表于 2020-7-21 18:39
感谢分享,dict转json为什么不用dumps()方法?

也是可以的
 楼主| 关山月明 发表于 2020-7-21 18:42
这个是我改进后的,之前那个循环阻断变量有些还没删,请自动忽略掉
Lsygood 发表于 2020-7-21 19:05
好东西,顶一下
skykain 发表于 2020-7-21 19:06
为什么不用 sqlite 存储用户数据,感觉操作会方便点哦。。。
夏普夏普夏普 发表于 2020-7-21 19:15
好东西啊
Like· 发表于 2020-7-21 19:24
好东西,值得学习。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 03:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表