Вместо того, чтобы использовать метод isalnum
, давайте попробуем решить это самостоятельно. Главное, чего вам не хватает, это петля. Например, если я хочу проверить каждую букву, я могу зациклить буквы и использовать метод ord
, чтобы убедиться, что каждая буква находится в правильном диапазоне.
Вы должны структурировать свои методы для проверки каждой буквыиз уникальных условий, как указано в вопросе. Если он прошел все условия, вы можете вернуть true в конце.
def is_valid_user(username):
# a user name should start with a letter
is_first_lower = ord('a') <= ord(username[0]) <= ord('z')
is_first_upper = ord('A') <= ord(username[0]) <= ord('Z')
if not (is_first_lower or is_first_upper):
return False
# only consists of letters and numbers
for character in username:
is_lower = ord('a') <= ord(character) <= ord('z')
is_upper = ord('A') <= ord(character) <= ord('Z')
is_number = ord('0') <= ord(character) <= ord('9')
if not (is_lower or is_upper or is_number):
return False
# check the other cases like "The length should be between 6 and 12"
...
# All the tests passed so return true
return True
Теперь вы можете подумать о том, как создать is_valid_password
метод. Этот метод должен быть похожим, но иметь несколько разных условий. Бонус : подумайте, как можно использовать другие методы для совместного использования чеков между методами is_valid_user
и is_valid_password
.