问题:输入一个邮箱,来判定该邮箱的格式是否正确。
类似A@B.C的结构,A,B,C都必须至少包含一个字母或者数字。
例子:n='i@g.com'
格式正确的话输出:('i@g.com' ,True)
例子:n='_i@g.com'
不正确的话输出:('_i@g.com' , False)
这是我的答案:
n_1=n.find('@')
n_2=n.find('.')
a=n[0:n_1]
b=n[n_1:n_2]
c=n[n_2+1]
if len(a)>=1 and (a.isdigit or a.isalpha) and len(b)>=1 and (b.isdigit or b.isalpha) and len(c)>=1 and (c.isdigit or c.isalpha):
print(n,", True")
else:
print(n,", False")
不管输入的是啥格式都是True, 不知道错在哪儿里...
n = "1A@a124.com"
n_1=n.find('@')
n_2=n.find('.')
a=n[0:n_1]
b=n[n_1+1:n_2] # n_1是 @ 的位置,你要从 @ 的下一个位置开始切片,就要+1
c=n[n_2+1:] #获取切片要加 “:”
# a.isdigit() or a.isalpha() 这样是判断:a字符串中要么全部是数字,要么全部是字母
# 对于"1A@a124.com"这样字母和数字混合的应该是用 a.isalnum()
if a.isalnum() and b.isalnum() and c.isalnum():
print(n,", True")
else:
print(n,", False")
isdigit和isalpha后面要加括号的,还有你的a,b,c赋值有点问题,照我这样就能行了
n_1=n.find('@')
n_2=n.find('.')
a=n[0:n_1]
b=n[n_1+1:n_2]
c=n[n_2+1:]
print(a,b,c)
if len(a)>=1 and (a.isdigit() or a.isalpha()) and len(b)>=1 and (b.isdigit() or b.isalpha()) and len(c)>=1 and (c.isdigit() or c.isalpha()):
print(n,", True")
else:
print(n,", False")
可如果我输入的是 n='1v@g.com' 结果应该是True但显示的结果为False...
有基本的pyhton方法吗,正则还没学到...
n_1=n.find('@')
n_2=n.find('.')
a=n[0:n_1]
b=n[n_1+1:n_2]
c=n[n_2+1:]
if a.isalnum() and b.isalnum() and c.isalnum():
print(n,", True")
else:
print(n,", False")
2
推荐使用正则校验,需要导入 re 模块