丶凉风 2020-05-18 14:10 采纳率: 0%
浏览 344

求助,我用python写了个登录注册模块,pycham没有报错,但不知道为什么无法运行,求指点!

以下是我的代码:

# 创建用户类
class Users:
    def __init__(self, userName, passWord):
        self.userName = userName
        self.passWord = passWord


# 创建管理类
class Manager:
    def __init__(self):
        self.allUserList = []

    # 注册
    def registered(self, newUser):
        for one in self.allUserList:
            if one.userName == newUser.userName:
                return -1
        self.allUserList.append(newUser)
        return 1

    # 用户信息文件读取
    def readFromFile(self, fileName):
        f = open(fileName, "w")
        f.close()

        with open(fileName, "r", encoding="utf-8") as f:
            for oneStr in f:
                oneList = oneStr.strip("\n").split(",")
                user = Users(oneList[0], oneList[1])
                self.allUserList.append(user)

    # 用户信息文件写入
    def writeToFile(self, fileName):
        f = open(fileName, "w")
        f.close()

        with open(fileName, "a", encoding="utf-8") as f:
            for one in self.allUserList:
                oneStr = str(one.userName) + "," + str(one.passWord) + "\n"
                f.write(oneStr)

    # 登录
    def login(self, aUser):
        for one in self.allUserList:
            if one.userName == aUser.userName:
                if one.passWord == aUser.passWord:
                    return 2
                else:
                    return 1
            else:
                return -1


def menuShow():
    print("==================")
    print("***** 1.注册 *****")
    print("***** 2.登录 *****")
    print("==================")


if __name__ == "__main__":
    userManager = Manager()
    userManager.readFromFile("user.txt")
    while True:
        menuShow()
        select = int(input("请选择功能:"))
        # 1.注册
        if select == 1:
            userName = input("请输入用户名:")
            passWord = input("请输入密码:")
            auser = Users(userName, passWord)
            if userManager.registered(auser) == -1:
                print("该用户名已存在!")
                userManager.writeToFile("user.txt")
            else:
                userManager.writeToFile("user.txt")
                flag = input("注册成功!\n请返回登录!")
        elif select == 2:
            userName = input("请输入用户名:")
            passWord = input("请输入密码:")
            auser = Users(userName, passWord)
            if userManager.login(auser) == 2:
                print("登陆成功!")
                break
            elif userManager.login(auser) == 1:
                print("密码输入错误!\n请重新输入!")
                continue
            elif userManager.login(auser) == -1:
                print("用户名输入错误!\n请重新输入!")
                continue

  • 写回答

1条回答 默认 最新

  • Lonelypatients° 2020-05-21 17:46
    关注

    图片说明
    好着呢

    评论

报告相同问题?

悬赏问题

  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能