← Все вопросы

Условие if никогда не срабатывает, хотя сравниваю с input — почему?

Задан 27 месяцев назад673 просмотров2 ответа
6

Делаю проверку пароля, но даже при правильном вводе говорит "неверно":

password = input("Пароль: ")
if password == 1234:
    print("Верно")
else:
    print("Неверно")

Ввожу 1234, а оно "Неверно". Ошибки нет, просто не работает.

2 ответа

12
✓ Принятый ответ — помог автору

input() возвращает строку '1234', а ты сравниваешь её с числом 1234. Строка и число никогда не равны, поэтому условие всегда ложно — отсюда вечное "Неверно".

Сравнивай с тем же типом. Если пароль — это цифры как текст, сравни со строкой:

if password == "1234":

Если это именно число — сначала преобразуй ввод:

if int(password) == 1234:

Главное — чтобы по обе стороны == был один и тот же тип.

4

Частая ловушка рядом: даже у двух строк может "не совпасть" из-за лишнего пробела или перевода строки. Если подозреваешь это — добавь .strip(): password.strip() == "1234".

Ваш ответ

Войдите, чтобы ответить на вопрос.