К основному контенту

Задача на правильность введенного email

Напишите программу, которая проверяет, верно ли что пользователь ввел электронную почту.
Выходные данные: 
С клавиатуры вводится одна строка - электронная почта. 
Вывести "Почта введена верно" если в строке есть знак "@" и ".". 
Вывести "Отсутствует @" если нет соответствующего символа. 
Вывести "Отсутствует ." если нет соответствующего символа. 
Вывести "Отсутствует @ и ." если нет соответствующих символов. 

Пример: podlev@gmail.com 
Почта введена верно 

a=str(input()) 
if "@" in a and "." in a: 
    print('Почта введена верно') 
elif not "@" in a and "." in a: 
    print("Отсутствует @") 
elif not "." in a and "@" in a: 
    print("Отсутствует .") 
elif (not "@" in a) and (not "." in a): 
    print("Отсутствует @ и .")

С клавиатуры вводятся строки, до тех пор пока не будет введена верная почта.

text=False
while text==False:
    a=str(input())
    if "@" in a and "." in a:
        print('Почта введена верно')
        text=True
    elif not "@" in a and "." in a:
        print("Отсутствует @")     
    elif not "." in a and "@" in a:
        print("Отсутствует .")
    elif (not "@" in a) and (not "." in a):
        print("Отсутствует @ и .") 

Особенности вывода в цикле
Для того, чтобы организовать вывод в цикле не отдельно на каждой строке, а например выводить значения переменной через пробел, можно воспользоваться возможностями функции print.

print(value, ..., sep=' ', end='\n')
Как видим, кроме значение value, у функции есть два аргумента, которые заданы по умолчанию.

sep — разделитель выводимых значений(по умолчанию это пробел) и end — то, что будет выведено, когда все значения уже выведутся (по умолчанию это переход на новую строку). Если их изменить, то можно изменить вывод.

Например:

for i in range(10):
    print(i, end=' ')

# программа выведет 0 1 2 3 4 5 6 7 8 9

True False
Для управления циклами также можно безопасно использовать флаги. 

Флаг - это переменная которой присвоено логическое значение True или False (истина или ложь).

flag = True
while flag:
    x = int(input())
    if x < 0:
        flag = False
    print(x)


Популярные сообщения из этого блога

Максимум из пяти

Напишите программу, которая выводит наибольшее из пяти целых чисел. Входные данные С клавиатуры вводится пять целых числа, каждое на отдельной строке. Выходные данные Выводится одно число - наибольшее из чисел. Sample Input: 5 1 3 4 6 Sample Output: 6 a=int(input()) b=int(input()) c=int(input()) d=int(input()) e=int(input()) if a>b:     b=a if b>c:     c=b    if c>d:        d=c if d>e:     e=d print(e)

Проверка login

Напишите программу, которая проверяет, правильно ли введен логин пользователя. Логин может содержать только английские буквы и цифры и быть длиной не менее 6 символов. Если длина логина меньше 6 то выводится сообщение "Слишком короткий", если в логине есть лишние символы, то вывести сообщение "Неверный символ: и первый лишний символ". Если логин верный ты выводится "OK". Входные данные Вводится строка с логином Выходные данные Выводится строка с сообщением. Sample Input: p@dl$v Sample Output: Неверный символ: @ n=str(input()) alf_1='abcdefghijklmnopqrstuvwxyz' alf_2='ABCDEFGHIJKLMNOPQRSTUVWXYZ' dig='0123456789' rt=0 if len(n)<6:       rt=1    elif len(n)>=6:     for i in range(len(n)):         if not n[i] in alf_1 and not n[i] in alf_2 and not n[i] in dig:             rt=2             break         else:           ...