Подскажите, где я допустил ошибку?

if registration_password = None:
    print ("Для начала необходимо пройти регистрацию")
    registration_password = str(input("Введите пароль для регистрации"))
elif:
    login_password = str(input("Введите пароль для входа"))
if registration_password = login_password:
    print ("Вы успешно вошли в систему")
else: 
    print ("Пароль указан не верно")

Ответы (1 шт):

Автор решения: underv0lt
  1. Конструкция str(input()) является лишней, поскольку input изначально возвращает строковое значение, тоесть тип данных str.

  2. В случае с registration_password = None и registration_password = login_password необходимо писать ==, поскольку == является оператором сравнения, а = - оператором присваивания. А в случае с registration_password = str(input("Введите пароль для регистрации")) как раз применён оператор присваивания.

  3. elif дословно переводится как else if, т. е. означает ("если не истинно предыдущее условие, является ли конкретно это истинным"). В данном случае код не выполняется, поскольку не написано условие для elif. Здесь будет уместнее писать else.

  4. Для сравнивания переменной со значением None лучше использовать оператор is:

    if registration_password is None:

Надеюсь, что ответ понятен. Ниже готовый код:

registration_password = None
if registration_password is None:
    print("Для начала необходимо пройти регистрацию")
    registration_password = str(input("Введите пароль для регистрации"))
    login_password = str(input("Введите пароль для входа"))
else:
    login_password = str(input("Введите пароль для входа"))

if registration_password == login_password:
    print("Вы успешно вошли в систему")
else: 
    print("Пароль указан не верно")
→ Ссылка