Python: проблемы с If. При вводе разных ответов получаеться один и тот же вывод
Короче, я решил сделать простенькую программу которая записывает данные ввода пользователя и выводит их на экран. Для начала я сделал строку, которая будет спрашивать пользователя, начинать ли программу или нет, но при вводе разных ответов выходит один и тот же вывод.
message1 = str(input("Начнем создавать пасспорт?: "))
if "yes":
print("Отлично! начинаем!")
elif "no":
print("Хочешь не хочешь, а создать пасспорт необходимо. Так что запускаем программу!")
А вот вывод программы:
Начнем создавать пасспорт?: no
Отлично! начинаем!
Ответы (3 шт):
Вы не сравниваете введенной значение, а фактически проверяете является ли строка "yes" == "" пустой.
Для того чтобы ваш код работал следует сравнивать введенное сообщение:
message1 = str(input("Начнем создавать пасспорт?: "))
if message1 == "yes":
print("Отлично! начинаем!")
elif message1 == "no":
print("Хочешь не хочешь, а создать пасспорт необходимо. Так что запускаем программу!")
message1 = input("Начнем создавать пасспорт?: ")
if message1 == "yes": # <------ Здесь разница
print("Отлично! начинаем!")
elif message1 == "no": # <------ и здесь
print("Хочешь не хочешь, а создать пасспорт необходимо. Так что запускаем программу!")
Объяснение:
Первая строка: Не нужно (но возможно) применить функцию
str()т.к. функцияinput()всё-таки возвращает строку.Вторая строка:
if "yes":Что для решения должно быть "yes"?message1, конечно.
Нужно это Питону подсказать:if message1 == "yes":- Непустая строка (
if "yes":) всегда вычисляется как правда (True), пустая как неправда (False). Значит, ветвьif "что угодно":всегда выполнится, т.е. и вашаprint("Отлично! начинаем!").
Надо сравнивать полученное сообщение, в вашем случае вы проверяете является ли строка "yes" == None. Поэтому надо сказать Питону что с чем сравнивать
message1 = str(input("Начнем создавать паспорт?: "))
if message1 == "yes":
print("Отлично! начинаем!")
elif message1 == "no":
print("Хочешь не хочешь, а создать паспорт необходимо. Так что запускаем программу!")