Python: проблемы с If. При вводе разных ответов получаеться один и тот же вывод

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

message1 = str(input("Начнем создавать пасспорт?: "))
if "yes":
    print("Отлично! начинаем!")
elif "no":
    print("Хочешь не хочешь, а создать пасспорт необходимо. Так что запускаем программу!")

А вот вывод программы:

Начнем создавать пасспорт?: no
Отлично! начинаем!

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

Автор решения: mazik7512

Вы не сравниваете введенной значение, а фактически проверяете является ли строка "yes" == "" пустой.

Для того чтобы ваш код работал следует сравнивать введенное сообщение:

message1 = str(input("Начнем создавать пасспорт?: "))
if message1 == "yes":
    print("Отлично! начинаем!")
elif message1 == "no":
    print("Хочешь не хочешь, а создать пасспорт необходимо. Так что запускаем программу!")
→ Ссылка
Автор решения: MarianD
message1 = input("Начнем создавать пасспорт?: ")
if message1 == "yes":                                 # <------ Здесь разница
    print("Отлично! начинаем!")
elif message1 == "no":                                # <------ и здесь
    print("Хочешь не хочешь, а создать пасспорт необходимо. Так что запускаем программу!")

Объяснение:

  1. Первая строка: Не нужно (но возможно) применить функцию str() т.к. функция input() всё-таки возвращает строку.

  2. Вторая строка:

    • if "yes": Что для решения должно быть "yes"? message1, конечно.
      Нужно это Питону подсказать: if message1 == "yes":
    • Непустая строка ( if "yes":) всегда вычисляется как правда (True), пустая как неправда (False). Значит, ветвь if "что угодно": всегда выполнится, т.е. и ваша print("Отлично! начинаем!").
→ Ссылка
Автор решения: TimLi

Надо сравнивать полученное сообщение, в вашем случае вы проверяете является ли строка "yes" == None. Поэтому надо сказать Питону что с чем сравнивать

message1 = str(input("Начнем создавать паспорт?: "))
if message1 == "yes":
    print("Отлично! начинаем!")
elif message1 == "no":
    print("Хочешь не хочешь, а создать паспорт необходимо. Так что запускаем программу!")
→ Ссылка