好帅灬 2022-12-08 14:03 采纳率: 100%
浏览 108
已结题

python编写一个存储网站注册用户信息的 User 类

python编写一个存储网站注册用户信息的 User 类 要求:

用户名 name 只能使用 A~Z、a~z、0~9、- 和 _ 这些字符,只能以字母开头,长度在 5~20 字符之间;
用户密码 password 只能是编号范围为 32~126 之间的 ASCII 可显示字符,长度在 10~50 之间,必须至少各包含一个小写字母、大写字母和数字,以及至少包含一个除了字母和数字之外的特殊字符。
可以通过 User(name, password) 的形式创建用户,后期也可以进一步通过 user.name = new_value 的形式修改用户名和密码。
提示:最好使用 @property 装饰器将用户名和密码设置为特征属性,并将实际的用户名和密码实例变量设置为私有的或保护的。另外请注意这里是以明文存储密码的,实际网站的密码都应该是不可逆加密存储的。

img

  • 写回答

2条回答 默认 最新

  • yy64ll826 2022-12-08 15:26
    关注

    用Python实现户注册信息管理系统
    如有帮助,望采纳

    userlist = []
    list = []
    class user:
        def __init__(self,username,password):
            self.name = username
            self.password = password
    count = 0
    file = open("test.txt","r")
    for line in file.readlines():
        line = line.replace('\n','')
        line = line.split(',')
        list.append(line)
        count += 1
    file.close()
    count = int(count / 2)
    m = 0; n = 1
    for i in range(count):
        temp1 = list[m]
        temp2 = list[n]
        m += 2; n += 2
        userlist.append(user(temp1,temp2))
    def add():
        newname = input('请输入新的用户名:')
        i = 0
        y = 0
        while i < count:
            if newname == ' '.join(userlist[i].name):
                print('您输入的用户名已经使用,请重新添加用户!')
                y = 1
                break
            i += 1
        if y == 0:
            newpassword = input('请输入新用户的登录密码:')
            userlist.append(user(newname,newpassword))
            count += 1          
    def save():
            file = open("test.txt","w+")
            i = 0
            while i < count:
                file.write(' '.join(userlist[i].name))
                file.write('\n')
                file.write(' '.join(userlist[i].password))
                file.write('\n')
                i += 1
            file.close()
            print('已成功保存用户信息')
    def seek():
        u = input('请输入要查找的用户名:')
        i = 0
        y = 0
        while i < count:
            if u == ' '.join(userlist[i].name):
                print(u+'已注册')
                print('请选择操作:')
                print('1.修改用户')
                print('2.删除用户')
                seekchoice = int(input('请输入序号选择对应操作:'))
                if seekchoice == 1:
                    newname = input('请输入新的用户名:')
                    newpassword = input('请输入新用户的登录密码:')
                    userlist[i].name = newname
                    userlist[i].password = newpassword
                    print('已成功修改用户!')
                elif seekchoice == 2:
                    userlist.remove(userlist[i])
                    print('已成功删除用户!')
                else:
                    print('您输入的信息有误!')
                y = 1
                break
            i += 1
        if y == 0:
            print(u+'不存在!')
    print('用户注册信息管理系统')
    print('1.显示全部已注册用户')
    print('2.查找/修改/删除用户信息')
    print('3.添加新用户')
    print('4.保存用户数据')
    print('5.退出系统')
    choose1 = int(input(print('请输入序号选择对应菜单:')))
    while choose1 != 5:
        if choose1 == 1:
            c = 0;m = 0;n = 1
            while c < count:
                print(c+1,'.username=',' '.join(list[m]),'  password=',' '.join(list[n]))
                m += 2;n += 2;c += 1
            choose2 = input('按住Enter键继续······')
            if choose2 == '\n':
                continue
        elif choose1 == 2:
            seek()
            choose2 = input('按住Enter键继续······')
            if choose2 == '\n':
                continue
        elif choose1 == 3:
            add()
            choose2 = input('按住Enter键继续······')
            if choose2 == '\n':
                continue
        elif choose1 == 4:
            save()
            choose2 = input('按住Enter键继续······')
            if choose2 == '\n':
                continue
        else:
            print('您输入的信息有误!')
        choose1 = int(input(print('请输入序号选择对应菜单:')))  
    if choose1 == 5:
        print('谢谢使用,系统已退出!')
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 已采纳回答 12月8日
  • 创建了问题 12月8日

悬赏问题

  • ¥15 请问各位,如何在Jetson nano主控板的Ubuntu系统中安装PyQt5
  • ¥15 MAC安装佳能LBP2900驱动的网盘提取码
  • ¥400 微信停车小程序谁懂的来
  • ¥15 ATAC测序到底用什么peak文件做Diffbind差异分析
  • ¥15 安装ubantu过程中第一个vfat 文件挂载失败
  • ¥20 GZ::CTF如何兼容一些靶机?
  • ¥15 etcd集群部署问题
  • ¥20 谁可以帮我一下问一下各位
  • ¥15 为何重叠加权后love图的SMD与svyCreateTableOne函数绘制基线表的不一致
  • ¥150 求 《小魔指》街机游戏机整合模拟软件