2016-09-27 3 views
0

«он должен содержать символ« @ » , который не имеет ни первого символа, ни последнего символа в строке».Проверка наличия символа «@» в электронном письме. Не проверка самого сообщения

Итак, у меня есть это задание в моем классе, и я не могу на всю жизнь понять, как сделать логическое ложное для его наличия на передней или конце электронной почты. Это то, что у меня есть до сих пор.

def validEmail1(myString): 
    for i in myString: 
     if i == "@": 
      return True 
    else: 
     return False 

ответ

2

С 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','[email protected]','[email protected]', '[email protected]@def') 

for case in cases: 
    print(case, valid(case)) 

Печать:

@abc False 
[email protected] False 
[email protected] True 
[email protected]@def False 

Вы можете также использовать кусочек, но вы также должны убедиться, что (косвенно), что строка не может начинаться или заканчиваться '@', убедившись, что счетчик равен 1:

def valid(s): 
    return '@' in s[1:-1] and s.count('@')==1 
+1

Это фактическое правильный ответ. Другой ответ проверяет все, кроме первого и последнего. Вы также можете использовать 'return '@" не в [s [0], s [-1]] ..' –

+0

Почему вы считаете, что счетчик должен быть 1? Действительные адреса электронной почты могут иметь несколько (цитируемых) символов '@' ... –

Смежные вопросы