验证“@”符号在电子邮件中的位置。不验证电子邮件本身
Validating where the "@" symbol is in an email. Not validation of the email itself
"它必须包含一个"@"符号
这既不是字符串中的第一个字符也不是最后一个字符。"
所以我在我的 class 中有这个任务,但我终其一生都想不出如何使布尔值 false 因为它位于电子邮件的开头或结尾。这是我目前所拥有的。
def validEmail1(myString):
for i in myString:
if i == "@":
return True
else:
return False
使用 s
作为字符串,您可以:
not (s.endswith('@') or s.startswith('@')) and s.count('@')==1
测试:
def valid(s):
return not (s.endswith('@') or s.startswith('@')) and s.count('@')==1
cases=('@abc','abc@','abc@def', 'abc@@def')
for case in cases:
print(case, valid(case))
打印:
@abc False
abc@ False
abc@def True
abc@@def False
您也可以使用切片,但您还需要确保(间接地)字符串不以 '@'
开头或结尾,方法是确保计数为 1:
def valid(s):
return '@' in s[1:-1] and s.count('@')==1
"它必须包含一个"@"符号 这既不是字符串中的第一个字符也不是最后一个字符。"
所以我在我的 class 中有这个任务,但我终其一生都想不出如何使布尔值 false 因为它位于电子邮件的开头或结尾。这是我目前所拥有的。
def validEmail1(myString):
for i in myString:
if i == "@":
return True
else:
return False
使用 s
作为字符串,您可以:
not (s.endswith('@') or s.startswith('@')) and s.count('@')==1
测试:
def valid(s):
return not (s.endswith('@') or s.startswith('@')) and s.count('@')==1
cases=('@abc','abc@','abc@def', 'abc@@def')
for case in cases:
print(case, valid(case))
打印:
@abc False
abc@ False
abc@def True
abc@@def False
您也可以使用切片,但您还需要确保(间接地)字符串不以 '@'
开头或结尾,方法是确保计数为 1:
def valid(s):
return '@' in s[1:-1] and s.count('@')==1