输入时要进行用户名、密码校验,规则为用户名不为空且必须包含数字和字母,即以数字或者字母开头,后面可以带数字、字母或者_;用户密码不为空且仅包含数字和字母。 当用户名不重复时,用户名、密码信息保存在当前文件夹下的文件user.txt中,并弹出消息窗口提示“注册成功!”;否则,弹出消息窗口提示“该用户名已存在,请重新输入”。 (2)用户登录功能要求如下: 输入时要进行用户名、密码校验,当用户名、密码与文件user.txt中某一组用户账号(即用户名、密码)对应时,并弹出消息窗口提示“登录成功!”,关闭该消息窗口后再弹出子窗口;否则,弹出消息窗口提示“用户名或者密码错误”。
时间: 2023-12-25 21:02:55 浏览: 80
好的,你的问题是关于用户注册和登录的校验和操作,我可以帮你解决这个问题。
首先,我们需要编写一个函数来校验输入的用户名和密码是否符合要求。以下是示例代码:
```python
import re
def check_username(username):
pattern = r'^[a-zA-Z0-9][a-zA-Z0-9_]*$'
if re.match(pattern, username):
return True
else:
return False
def check_password(password):
pattern = r'^[a-zA-Z0-9]+$'
if re.match(pattern, password):
return True
else:
return False
```
这个函数会返回一个布尔值,表示输入的用户名或密码是否符合要求。接下来,我们可以编写用户注册和登录的代码。
用户注册的代码如下:
```python
import os
def register(username, password):
if not check_username(username):
return "用户名不符合要求"
if not check_password(password):
return "密码不符合要求"
filename = os.path.join(os.getcwd(), "user.txt")
if os.path.exists(filename):
with open(filename, 'r') as f:
lines = f.readlines()
for line in lines:
if username == line.split(',')[0]:
return "该用户名已存在,请重新输入"
with open(filename, 'a') as f:
f.write("{},{}\n".format(username, password))
return "注册成功!"
```
这个函数会根据输入的用户名和密码进行校验。如果校验通过,它会打开一个文件user.txt,并检查文件中是否已经存在相同的用户名。如果不存在,就将用户名和密码写入文件中,并返回“注册成功!”;如果存在,则返回“该用户名已存在,请重新输入”。
用户登录的代码如下:
```python
def login(username, password):
if not check_username(username):
return "用户名不符合要求"
if not check_password(password):
return "密码不符合要求"
filename = os.path.join(os.getcwd(), "user.txt")
if os.path.exists(filename):
with open(filename, 'r') as f:
lines = f.readlines()
for line in lines:
if username == line.split(',')[0] and password == line.split(',')[1].strip():
return "登录成功!"
return "用户名或者密码错误"
```
这个函数也会根据输入的用户名和密码进行校验。如果校验通过,它会打开文件user.txt,并检查文件中是否存在相同的用户名和密码。如果存在,就返回“登录成功!”;如果不存在,则返回“用户名或者密码错误”。
以上就是用户注册和登录的代码实现。你可以将这些代码放在你的应用程序中,并根据需要进行修改。
阅读全文