Created
December 7, 2018 09:59
-
-
Save 63phc/655654cde8e05e0a2c29b8b706c9f4bb to your computer and use it in GitHub Desktop.
validater_test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# логин должен начинаться с латинской буквы; | |
# состоять из латинских букв, цифр, точки и минуса, | |
# но заканчиваться только латинской буквой или цифрой; | |
# минимальная длина логина — один символ, максимальная — 20. | |
def validater_one(data: str) -> bool: | |
if len(data) <= 20 and data[0].isalpha() and (data[-1].isalpha() or data[-1].isdigit()): | |
result = [] | |
for i in set(data): | |
i = bool( 65 < ord(i) < 122 or i.isdigit() or i == '-' or i == '.') | |
result.append(i) | |
if False in result: | |
return False | |
else: | |
return True | |
else: | |
return False | |
import re | |
def validater_two(data: str) -> bool: | |
return True if re.search('^[a-z]+([a-z0-9.-]*[a-z0-9])?$', data) and len(data) <= 20 else False | |
if __name__ == '__main__': | |
assert validater_one('111ppp')==False | |
assert validater_two('adad<a')==False | |
assert validater_one('A1.')==False | |
assert validater_two('Kвертиqwerty')==False | |
assert validater_one('bpods7-6..4')==True | |
assert validater_two('assert.')==False | |
import time | |
t0 = time.time() | |
validater_one('F-1') | |
t1 = time.time() | |
print(t1-t0, 'validater_one') | |
t2 = time.time() | |
validater_two('F-1') | |
t3 = time.time() | |
print(t3-t2, 'validater_two') | |
print('All ok') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment