@Neosoboitupoi

Почему оператор if в конструкции не возвращает нужное значение?

def start(message):
    with open(str(message.from_user.id) + '.txt') as file:
        x = str(file.readline())
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn1 = types.KeyboardButton('Покупка')
    btn2 = types.KeyboardButton('Продажа')
    btn3 = types.KeyboardButton('Ремонт')
    btn4 = types.KeyboardButton('Пук')
    markup.add(btn1, btn2, btn3)
    otvet = bot.send_message(message.chat.id, x + f", Выберите в меню, что интересует :)", reply_markup=markup)
    bot.register_next_step_handler(otvet, start_text)
def start_text(message):
    with open(str(message.from_user.id) + '.txt') as file:
        x = str(file.readline())
    p = 1
    while p == 1:
        if message.text == 'Покупка':
            markup1 = types.ReplyKeyboardMarkup(resize_keyboard=True)
            bot.send_message(message.from_user.id, x + f', Вот модели в наличии:{Yes_mod} ', parse_mode='Markdown')
            ans1 = types.KeyboardButton('Оформить заявку')
            ans2 = types.KeyboardButton('Назад в меню')
            markup1.add(ans1, ans2)
            msg0 = bot.send_message(message.from_user.id,f'. Для приобретения яблочка - предлагаю вам оформить заявку, я её передам лично в руки  или обратитесь в наш магазин  сдесь буит ссылка',reply_markup=markup1)
            sled6(message)
            break
        elif message.text == 'Продажа' :
            msg = bot.send_message(message.from_user.id, x + f'. Давайте оформим заявку , какаую модель вы хотите предложить? Напишитие примерно "Iphone 6 или iphone 8s',reply_markup=types.ReplyKeyboardRemove(), parse_mode='Markdown')
            bot.register_next_step_handler(msg, sled)
            break
        elif message.text == 'Ремонт':
            msg31 = bot.send_message(message.from_user.id, x + f'. Какое у вас яблочко ☎️? Напишитие примерно "Iphone 6 или iphone 8s',reply_markup=types.ReplyKeyboardRemove(), parse_mode='Markdown')
            bot.register_next_step_handler(msg31, polomka)
            break
        else:
            bot.send_message(message.from_user.id, 'Немного не понял, повторите пожалуйста(')

При нажатии на кнопки в тг Ремонт - выдаёт значение кнопки Продажа ('. Давайте оформим заявку ....)
  • Вопрос задан
  • 109 просмотров
Решения вопроса 2
lxstvayne
@lxstvayne
Люблю Python
Запустите и проверьте, что выведет
bool('2' == '1' or '1')
Ответ написан
Комментировать
@twistfire92
Python backend developer
Вы неправильно задаете условие, вы пытаетесь человеческую речь перевести на язык программирования.
Если текст равен "Вариант1" или "Вариант2", то...
не будет так работать.
условие
if text == 'first' or 'second':
разбивается на проверку истинности двух утверждений:
- text == 'first'
- 'second'
Если с первым все понятно, то во втором случае мы приводим непустую строку к типу bool и получаем всегда True

Если и дальше хотите переводить человеческую речь в инструкции на языке программирования, необходимо более правильно ставить задачу
Например:
Если текст равен "Вариант 1" или текст равен "Вариант 2", то...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы