DamiRocK

Python: if–else и проверка совпадения пароля с подтверждением

Возвращаем ‘Password confirmed’ или ‘Passwords do not match’. Различаем проверку равенства двух строк и полноценную обработку паролей.

Две взаимоисключающие ветви

If–else выбирает один из двух блоков. При истинном условии выполняется первый, при ложном — второй. Это удобно, когда оба исхода должны иметь явно заданное поведение.

Задание источника

Функция проверяет совпадение пароля и подтверждения и возвращает одну из двух строк:

def check_password_confirmation(password: str, confirmation: str) -> str:
    if password == confirmation:
        return "Password confirmed"
    else:
        return "Passwords do not match"

Примеры

Для двух одинаковых учебных строк результат — "Password confirmed". При различии хотя бы одного символа возвращается "Passwords do not match". Сравнение чувствительно к регистру и пробелам: "abc" отличается от "Abc" и "abc ".

Две пустые строки также равны. Поэтому этот код может подтвердить их совпадение, хотя отдельное правило приложения могло бы запретить пустой пароль.

Возврат вместо печати

Функция возвращает сообщение. Вызывающий код сам решает, показать его пользователю или использовать иначе. Печатать исходные секреты для проверки примера не требуется; в обучении достаточно вымышленных строк.

Что эта проверка не делает

Равенство двух строк не оценивает стойкость пароля, не проверяет его по базе, не хеширует и не сохраняет. Это лишь один локальный шаг подтверждения ввода. Не следует представлять короткое упражнение как готовую систему безопасной аутентификации.

После безусловного return в первом блоке else можно опустить, оставив второй return на уровне тела функции. В этом уроке вариант if–else сохранён специально, чтобы показать обе ветви конструкции.

Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Учебная проверка равенства отделена от полной обработки паролей.

Reading preferences

Appearance
Contrast
More options

Saved only in this browser. Your device’s reduced-motion setting is always respected. Browser zoom works throughout the site.