Задать вопрос
pohgen
@pohgen

Почему цикл if в phyton не работает?

Я написал код для проверки ответа сообщения от пользователя и в этом примере он работает как надо, то есть если пишу /help - меня перекидывает в хелп, если пишу не численные значение - пишет "Введи цифрами", вот код:
def first_number(message):
    global a1
    a1 = message.text
    if a1.isdigit():
        a1=int(a1)
        msg = bot.send_message(message.chat.id, 'Введи число транспорта B')
        bot.register_next_step_handler(msg, second_number)
    elif a1 == "/help":
        help(message)
    elif a1 == "/start":
        start(message)
    else:       
        msg = bot.send_message(message.chat.id, 'Введи цифрами!')
        bot.register_next_step_handler(msg, first_number)

НО, буквально в соседней функции с приблизительными параметрами условие if не работает! В независимости, что я написал, он выдаёт только то, что написано в первом условии "if" и игнорирует все "elif" и "else", вот код:
def proverka(message):
    check = message.text
    if check == "1" or "stymulanta" or "Stymulanta":
        msg = bot.send_message(message.chat.id, check) #тут я проверяю, что он правильно принял переменную check и что проблема не в этом
        maxx=max(a1,b1,c1)
        minn=min(a1,b1,c1)
        x1=(a1-minn)/(maxx-minn)
        x2=(b1-minn)/(maxx-minn)
        x3=(c1-minn)/(maxx-minn)
        msg = bot.send_message(message.chat.id, "x1="+str(x1)+"\n"+"x2="+str(x2)+"\n"+"x3="+str(x3)+"\n")
        #text(message) тут я закомментировал эту строчку, чтобы проверить, что он действительно проходит только первое условие, потому что в остальных "elif" эта строчка присутствует
    elif check == "2" or "destymulanta" or "Destymulanta":
        maxx=max(a1,b1,c1)
        minn=min(a1,b1,c1)
        x1=(maxx-a1)/(maxx-minn)
        x2=(maxx-b1)/(maxx-minn)
        x3=(maxx-c1)/(maxx-minn)
        msg = bot.send_message(message.chat.id, "x1="+str(x1)+"\n"+"x2="+str(x2)+"\n"+"x3="+str(x3)+"\n")
        text(message)
    elif check == "3" or "nominanta" or "Nominanta":
        msg = bot.send_message(message.chat.id, 'Введи идеальное значение Nominanty')
        bot.register_next_step_handler(msg, nominanta)
    elif check == "/help":
        help(message)
    elif check == "/start":
        start(message)
    else:
        msg = bot.send_message(message.chat.id, 'Введи 1 или 2 или 3, я тебя не понял')


Я уже несколько раз проверил код, не могу найти в чем проблема. Я ослеп?
  • Вопрос задан
  • 183 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Dr_Elvis
@Dr_Elvis Куратор тега Python
В гугле забанен
if check in ["1", "stymulanta", "Stymulanta"]:
Ну и остальные по аналогии.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы