Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 12, 2023 14:13:07

_hiddenberg_
Зарегистрирован: 2023-09-12
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает if else

Здравствуйте. Написал вот такой код, где пользователь должен ввести, есть ли у него условно аккаунт или он еще не зареган. На ответы “yes” или “+” предлагает залогиниться, на ответы “no” или “-” - создать аккаунт. Если же он пишет в строке фигню, либо что-то помимо ответов “да” и “нет”, должно выдать надпись “некорректный ответ”. При компиляции ошибок нет, но в случае написания в поле абы чего, программа все равно предлагает залогиниться, т.е. срабатывает тот же алгоритм, что и после ответа “yes”. Прикрепил файл с кодом.

Прикреплённый файлы:
attachment Screenshot_1.png (110,1 KБ)

Офлайн

#2 Сен. 12, 2023 20:05:38

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1352
Репутация: +  118  -
Профиль   Отправить e-mail  

Не работает if else

_hiddenberg_
Прикрепил файл с кодом.
[code python]между этими тегами вставлять код на форуме[/code]

Офлайн

#3 Сен. 13, 2023 07:33:27

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Не работает if else

Вы не совсем освоили конструкцию IF

Если вы уже хотите сделать множественную проверку то это должно было бы выглядеть примерно так:

     account_question = input("Account action: ")
    if account_question == "yes" or account_question == "Yes" or account_question == "YES" or account_question == "+":
        print("Lets login in.")
    elif account_question == "no" or account_question == "No" or account_question == "NO" or account_question == "-":
        print(" Lets create your account")
    else:
        print("Icorrect answer")

Однако такой код несколько избыточный. В случае когда символы могут быть разными - грамотно просто приводить сравниваемое слово к единому регистру

 answers = ["no", "No", "NO"]
for i in answers:
    if i.lower() == "no":
        print("OK")

если же команд больше чем 1 (Yes, OK, +, add) тогда проще поместить их в список и сверяться по нему что бы не плодить лишние проверки

 allow_keys = ["no", "No", "NO", "-", "del"]
if account_question in allow_keys:
    print("Lets Login")

И на будущее - вставляйте код тектом оборачивая его в теги - грузить картинки это как то по ПХПшному



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Отредактировано ZerG (Сен. 13, 2023 07:34:20)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version