-
Notifications
You must be signed in to change notification settings - Fork 0
/
基本邮箱验证.py
49 lines (40 loc) · 1.9 KB
/
基本邮箱验证.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 编写一个程序来验证一个邮箱地址是否合法。
#
# 定义函数is_email_valid(),参数为email。
# 在函数内,如果邮箱email满足下面提到的条件,则返回True,否则返回False。
# 要求邮箱有效,必须满足以下条件:
#
# 字符串必须包含一个@字符。
# 字符串必须包含一个.字符。
# @必须有至少一个字符在它之前。
# .和@必须处于适当的位置。
# 例如,hello.email@com是无效的,而john.smith@email.com是有效的。
#
# 示例输入
# user@website.com
# 示例输出
# True
# 导入 string 模块
import string
def is_email_valid(email):
# 判断当前输入的字符串中是否包含“@”和“.”符号(邮箱组成必要条件),任意一个不包含则返回假
if "@" not in email and "." not in email:
return False
# 判断当前输入的字符串中“@”符号前后是否为“.”(邮箱中@符号前后不能为.),前面或后面为‘.’则为假
elif email[email.index("@") - 1] == "." or email[email.index("@") + 1] == ".":
return False
# 判断当前输入的字符串中“@”符号后面的字符是否以“.”结尾或者未出现,是则为假
elif email[email.index("@") + 1:].endswith(".") or email[email.index("@") + 1:].count(".") == 0:
return False
# 判断当前输入的字符串“@”符号前面字符与后面字符是否包含空格,是则为假
elif email[:email.index("@")] in ' ' or email[email.index("@") + 1:] in ' ':
return False
# 判断输入的字符串“@”符号前后时候包含字母,包含则为真,否则为假
elif any(char in string.ascii_letters for char in email[:email.index("@")]) or any(
char in string.ascii_letters for char in email[email.index("@") + 1:]):
return True
return False
# 获取输入
email = input()
# 调用函数
print(is_email_valid(email))