A52252. 某公司的电子邮箱地址由两部分构成,第一部分由6到12个数字、大小写英文字母或下划线构成,且邮箱的第一个字符必须为大小写英文字母,第二部分为字符串“@dmail.com”。
填空题
困难
知识点
题目描述
某公司的电子邮箱地址由两部分构成,第一部分由6到12个数字、大小写英文字母或下划线构成,且邮箱的第一个字符必须为大小写英文字母,第二部分为字符串“@dmail.com”。编写程序,接收用户输入的字符串,判断其是否为此公司合法的电子邮箱地址,合法输出:y,不合法输出:n。
提示:
利用标准库re的功能进行字符串匹配,^可用来匹配字符串开头,$可用来匹配字符串结尾。
注:input()函数中不要增加任何参数等提示信息。
例:
输入: 66uujjk@dmail.com 输出: n
输入: yh78uj_@dmail.com 输出: y
参考答案
# 接收用户输入
email = input()
# 定义邮箱第二部分
domain = "@dmail.com"
# 检查邮箱是否以指定域名结尾
if not email.endswith(domain):
print("n")
else:
# 提取邮箱第一部分
local_part = email[:-len(domain)]
# 检查第一部分长度是否在6-12之间
if len(local_part) < 6 or len(local_part) > 12:
print("n")
else:
# 检查第一个字符是否为字母
first_char = local_part[0]
if not first_char.isalpha():
print("n")
else:
# 检查所有字符是否为数字、字母或下划线
valid = True
for char in local_part:
if not (char.isalnum() or char == "_"):
valid = False
break
print("y" if valid else "n")答案解析
import re
def verify_email(email):
pattern = '^[a-zA-Z][\w]{5,11}@dmail\.com$'
if re.match(pattern, email) is not None:
print('y')
else:
print('n')
input_email = input()
verify_email(input_email)
上一题
下一题