Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 24, 2012 14:01:24

DOSfag
Зарегистрирован: 2012-06-03
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Регялурка для проверки данных пользователя при регистрации

Вот основной код:

import reg_check
while 1:
    user_email=input("""Введите, пожалуйста, e-mail адрес (имя_ящика@имя_домена). Имя_ящика
не должно быть короче 3-х символов, имя_домена должно быть не короче 2-х символов\n""")
    if reg_check.email_check(user_email)==False:
        print("Неправильный e-mail адрес")
        email_flag=False
        user_email=""
    else:
        email_flag=True
    if email_flag==True:
        user_login=input("""Введите никнейм. Никнейм должен быть не короче 4-х исмволов и
не длинее 14 символов\n""")
        if reg_check.login_check(user_login)==False:
            print("Неправильный никнейм")
            login_flag=False
            user_login=""
        else:
            login_flag=True
        if login_flag==True:
            user_password=input("""Введите пароль. Пароль должен остоять не меньше, чем из 6 символов\n""")
            if reg_check.pass_check(user_password)==False:
                print("Неправильный пароль")
                pass_flag=False
                user_password=""
            else:
                pass_flag=True
            if pass_flag==True:
                print("Регистрация прошла успешно!")
                break

Проверка данных пользователя
import re
def email_check(email):
    com=re.compile('[-a-z0-9_]{3,} @ [-a-z0-9_]{2,} \. [a-z]{2,3}',re.I|re.X)
    ser=com.match(email)
    if ser==None:
        check=False
    else:
        check=True
    return check
def login_check(login):
    com=re.compile('[-a-z0-9_]{4,14}',re.I|re.X)
    ser=com.match(login)
    if ser==None:
        check=False
    else:
        check=True
    return check
def pass_check(password):
    com=re.compile('.{6,}',re.X)
    ser=com.match(password)
    if ser==None:
        check=False
    else:
        check=True
    return check

Отредактировано DOSfag (Авг. 24, 2012 14:01:58)

Прикреплённый файлы:
attachment Регистрация.py (1,5 KБ)

Офлайн

#2 Авг. 24, 2012 14:03:10

DOSfag
Зарегистрирован: 2012-06-03
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Регялурка для проверки данных пользователя при регистрации

Вот я поупражнялся в написании регулярных выражений

Офлайн

#3 Авг. 24, 2012 14:44:44

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Регялурка для проверки данных пользователя при регистрации

Я так понимаю нужны комментарии?

DOSfag
    ser=com.match(email)
    if ser==None:
        check=False
    else:
        check=True
    return check
->
return bool(com.match(email))
И вообще, нет смысла явно компилировать регекспы внутри функции записывая в локальную переменную. Или делать это один раз, или использовать re.match(…).

DOSfag
while 1:
    # input, set flag, check flag
    # ....

1.
if check(something) == False:
–>
if not check(something):

2. Есть continue
while True:
    something = input()
    if not check(something):
        print message
        continue
    something_else = input()
    if not another_check(something_else):
        print message
        continue
   do_action_with(something, something_else)
   break

Кстати, полный regexp для почты: http://ex-parrot.com/~pdw/Mail-RFC822-Address.html

Отредактировано reclosedev (Авг. 24, 2012 14:47:56)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version