Python判断用户名是否合法需满足以下条件:
-
长度要求
用户名长度需在6-12位之间(部分场景要求6-10位)。
-
字符限制
只能包含字母(大小写均可)和数字,不能包含特殊字符(如空格、符号等)。
-
首字符要求
第一个字符必须是大写字母。
-
唯一性检查
需与已注册用户名进行比对,避免重复。
-
错误处理
提供输入次数限制(如最多3次尝试),超过次数后提示失败。
示例代码 (综合以上要求):
import re
# 已注册用户名列表
all_users = ['Amy123', 'Lily123', 'Ben123']
def is_valid_username(username):
# 正则表达式校验:首字母大写,仅包含字母和数字
pattern = r'^[A-Z][0-9a-zA-Z]*$'
if not re.match(pattern, username):
return False
# 长度校验
if not (6 <= len(username) <= 12):
return False
# 唯一性校验
if username in all_users:
return False
return True
def register_user():
attempts = 3
while attempts > 0:
username = input("请输入用户名: ").strip()
if is_valid_username(username):
print("用户名合法,注册成功!")
break
else:
print("非法用户名!请检查长度、字符及首字母要求。")
attempts -= 1
if attempts == 0:
print("失败次数过多,注册失败。")
# 运行注册函数
register_user()
说明 :
-
使用正则表达式
^[A-Z][0-9a-zA-Z]*$
确保首字母大写且仅包含字母和数字。 -
通过
len(username)
检查长度是否符合要求。 -
结合
all_users
列表实现唯一性校验。 -
提供最多3次输入尝试,超过次数后终止注册流程。