Подскажите, где я допустил ошибку?
if registration_password = None:
print ("Для начала необходимо пройти регистрацию")
registration_password = str(input("Введите пароль для регистрации"))
elif:
login_password = str(input("Введите пароль для входа"))
if registration_password = login_password:
print ("Вы успешно вошли в систему")
else:
print ("Пароль указан не верно")
Ответы (1 шт):
Конструкция
str(input())
является лишней, поскольку input изначально возвращает строковое значение, тоесть тип данныхstr
.В случае с
registration_password = None
иregistration_password = login_password
необходимо писать==
, поскольку==
является оператором сравнения, а=
- оператором присваивания. А в случае сregistration_password = str(input("Введите пароль для регистрации"))
как раз применён оператор присваивания.elif
дословно переводится какelse if
, т. е. означает ("если не истинно предыдущее условие, является ли конкретно это истинным"). В данном случае код не выполняется, поскольку не написано условие дляelif
. Здесь будет уместнее писатьelse
.Для сравнивания переменной со значением
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("Пароль указан не верно")