用集合和面向对象写一个注册登录界面,要求注册用户名不能重复,登录密码不能错误
时间: 2024-04-29 19:23:59 浏览: 12
这里提供一种基于Python的实现方式。
首先考虑用集合来存储注册的用户名,保证用户名不能重复。定义一个名为“registered_users”的集合,并添加一些初始用户名:
```python
class User:
registered_users = {'user1', 'user2', 'user3'}
```
接下来,我们可以定义一个User类来表示一个用户。User类具有以下属性:
- username:用户名
- password:密码
以及以下方法:
- __init__():初始化方法,用于创建新用户对象
- register():用于将新用户添加到registered_users集合中
- login():用于验证用户输入的密码是否与该用户对象的密码匹配
完整代码如下:
```python
class User:
registered_users = {'user1', 'user2', 'user3'}
def __init__(self, username, password):
self.username = username
self.password = password
def register(self):
if self.username in User.registered_users:
print(f'Username "{self.username}" is already taken!')
else:
User.registered_users.add(self.username)
print(f'User "{self.username}" registered successfully!')
def login(self, password):
if password == self.password:
print(f'User "{self.username}" logged in successfully!')
else:
print('Incorrect password!')
# 示例用法:
user1 = User('user1', '123456')
user2 = User('user2', 'password')
user3 = User('user3', 'qwerty')
user1.register() # 输出:Username "user1" is already taken!
user4 = User('user4', 'abcdef')
user4.register() # 输出:User "user4" registered successfully!
user4.login('123') # 输出:Incorrect password!
user4.login('abcdef') # 输出:User "user4" logged in successfully!
```
以上代码中,我们定义了3个初始用户对象user1、user2和user3,它们的用户名和密码分别为'user1'/'123456'、'user2'/'password'和'user3'/'qwerty'。我们还定义了一个新用户对象user4,它的用户名为'user4',密码为'abcdef'。我们尝试使用user1的用户名注册一个新用户,由于这个用户名已经被占用,所以会输出“Username 'user1' is already taken!”。接着,我们创建一个新用户对象user4,并尝试使用它的用户名注册,此时会输出“User 'user4' registered successfully!”。最后,我们使用user4的login()方法尝试登录,首先使用一个错误的密码'123',输出“Incorrect password!”;然后使用正确的密码'abcdef',输出“User 'user4' logged in successfully!”。