Сложная задача моего кода

Имеется 6 переменных, которые по ходу выполнения заполняются, но всегда есть переменные которые получают None. И мне нужно вывести сообщение где есть только те переменные. которые не равны None

Ниже ужасный костыльный код которым определяются переменные.

try:
            num = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[1]/td[1]/text()')[0]
            schedule = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[1]/td[2]/text()')[0]
            para = re.findall(r'[А-я]+', schedule)[0]
            body = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[1]/td[3]/text()')[0]
            cabinet = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[1]/td[4]/text()')[0]
            print(num)
            if num == "1":
                p0 = f"<b>Первая пара</b>: {schedule.lstrip()}\n<b>Корпус</b>: {body.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet}"
            if num == "2":
                p0 = f"<b>Вторая пара</b>: {schedule.lstrip()}\n<b>Корпус</b>: {body.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet}"
            if num == "3":
                p0 = f"<b>Третья пара</b>: {schedule.lstrip()}\n<b>Корпус</b>: {body.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet}"
            if num == "4":
                p0 = f"<b>Четвертая пара</b>: {schedule.lstrip()}\n<b>Корпус</b>: {body.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet}"
            if num == "5":
                p0 = f"<b>Пятая пара</b>: {schedule.lstrip()}\n<b>Корпус</b>: {body.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet}"
            if num == "6":
                p0 = f"<b>Шестая пара</b>: {schedule.lstrip()}\n<b>Корпус</b>: {body.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet}"
        except:
            p0 = None
    
        try:
            num1 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[2]/td[1]/text()')[0]
            schedule1 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[2]/td[2]/text()')[0]
            para1 = re.findall(r'[А-я]+', schedule1)[0]
            body1 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[2]/td[3]/text()')[0]
            cabinet1 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[2]/td[4]/text()')[0]
            print(num1)
            if num1 == "2" and num != "2":
                p1 = f"<b>Вторая пара</b>: {schedule1.lstrip()}\n<b>Корпус</b>: {body1.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet1}"
            if num1 == "3":
                p1 = f"<b>Третья пара</b>: {schedule1.lstrip()}\n<b>Корпус</b>: {body1.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet1}"
            if num1 == "4":
                p1 = f"<b>Четвертая пара</b>: {schedule1.lstrip()}\n<b>Корпус</b>: {body1.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet1}"
            if num1 == "5":
                p1 = f"<b>Пятая пара</b>: {schedule1.lstrip()}\n<b>Корпус</b>: {body1.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet1}"
            if num1 == "6":
                p1 = f"<b>Шестая пара</b>: {schedule1.lstrip()}\n<b>Корпус</b>: {body1.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet1}"
        except:
            p1 = None
        
        try:
            num2 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[3]/td[1]/text()')[0]
            schedule2 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[3]/td[2]/text()')[0]
            para2 = re.findall(r'[А-я]+', schedule2)[0]
            body2 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[3]/td[3]/text()')[0]
            cabinet2 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[3]/td[4]/text()')[0]
            print(num2)
            if num2 == "3" and num1 != "3":
                p2 = f"<b>Третья пара</b>: {schedule2.lstrip()}\n<b>Корпус</b>: {body2.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet2}"
            if num2 == "4":
                p2 = f"<b>Четвертая пара</b>: {schedule2.lstrip()}\n<b>Корпус</b>: {body2.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet2}"
            if num2 == "5":
                p2 = f"<b>Пятая пара</b>: {schedule2.lstrip()}\n<b>Корпус</b>: {body2.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet2}"
            if num2 == "6":
                p2 = f"<b>Шестая пара</b>: {schedule2.lstrip()}\n<b>Корпус</b>: {body2.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet2}"
        except:
            p2 = None
            
        try:
            num3 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[4]/td[1]/text()')[0]
            schedule3 = tree.xpath('///html/body/div[2]/section/table[1]/tbody/tr[3]/td[2]/text()')[0]
            para3 = re.findall(r'[А-я]+', schedule3)[0]
            body3 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[3]/td[3]/text()')[0]
            cabinet3 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[3]/td[4]/text()')[0]
            print(num3)
            if num3 == "4" and num2 != "4":
                p3 = f"<b>Четвертая пара</b>: {schedule3.lstrip()}\n<b>Корпус</b>: {body3.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet3}"
            if num3 == "5":
                p3 = f"<b>Пятая пара</b>: {schedule3.lstrip()}\n<b>Корпус</b>: {body3.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet3}"
            if num3 == "6":
                p3 = f"<b>Шестая пара</b>: {schedule3.lstrip()}\n<b>Корпус</b>: {body3.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet3}"
        except:
            p3 = None
    
        try:
            num4 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[5]/td[1]/text()')[0]
            schedule4 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[5]/td[2]/text()')[0]
            para4 = re.findall(r'[А-я]+', schedule4)[0]
            body4 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[5]/td[3]/text()')[0]
            cabinet4 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[5]/td[4]/text()')[0]
            print(num4)
            if num4 == "5":
                p4 = f"<b>Пятая пара</b>: {schedule4.lstrip()}\n<b>Корпус</b>: {body4.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet4}"
            if num4 == "6":
                p4 = f"<b>Шестая пара</b>: {schedule4.lstrip()}\n<b>Корпус</b>: {body4.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet4}"
        except:
            p4 = None
    
        try:
            num5 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[]/td[1]/text()')[0]
            schedule5 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[6]/td[2]/text()')[0]
            para5 = re.findall(r'[А-я]+', schedule5)[0]
            body5 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[6]/td[3]/text()')[0]
            cabinet5 = tree.xpath('//html/body/div[2]/section/table[1]/tbody/tr[6]/td[4]/text()')[0]
            print(num5)
            if num5 == "6":
                p5 = f"<b>Шестая пара</b>: {schedule5.lstrip()}\n<b>Корпус</b>: {body5.replace(' / Перевоз', '')}\n<b>Кабинет</b>: {cabinet5}"
            else:
                p5 = "<b>Шестая пара</b>: Отсутствует"
        except:
            p5 = None
            
        try:
            testcheck = para + para1 + para2 + para3 + para4 + para5 
            if testcheck == None:
                bot.send_message(idtelegram, "В расписании пар не обнаружено!\nВозможно преподаватели ещё не составили список\nПровертье позже")
                pass
        except:
            if p5 == None and p4 == None and p3 == None and p2 == None and p1 == None and p0 == None:
                bot.send_message(idtelegram, f"Пары отсутствуют! ", parse_mode='html')
            bot.send_message(idtelegram, f"{p0}\n\n{p1}\n\n{p2}\n\n{p3}\n\n{p4}\n\n{p5}", parse_mode='html')
            pass

Я не хочу мучаться и перебирать через if переменные какие ровны none а какие нет. Нужно что бы эта часть кода:

bot.send_message(idtelegram, f"{p0}\n\n{p1}\n\n{p2}\n\n{p3}\n\n{p4}\n\n{p5}", parse_mode='html')

Отправляла только те переменные которые не равны none. И я не знаю как это реализовать:( (За код не судите, как могу так и делаю)


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

Автор решения: Бабанер ка

заколхозил как мог. Чуть позже сделаю массивом.

            if p0 != None:
                if p1 != None:
                    if p2 != None:
                        if p3 != None:
                            if p4 != None:
                                if p5 != None:
                                    bot.send_message(idtelegram, f"{p0}\n\n{p1}\n\n{p2}\n\n{p3}\n\n{p4}\n\n{p5}", parse_mode='html')
                                else:
                                    bot.send_message(idtelegram, f"{p0}\n\n{p1}\n\n{p2}\n\n{p3}\n\n{p4}", parse_mode='html')
                            else:
                                bot.send_message(idtelegram, f"{p0}\n\n{p1}\n\n{p2}\n\n{p3}", parse_mode='html')
                        else:
                            bot.send_message(idtelegram, f"{p0}\n\n{p1}\n\n{p2}", parse_mode='html')
                    else:
                        bot.send_message(idtelegram, f"{p0}\n\n{p1}", parse_mode='html')
                else:
                    bot.send_message(idtelegram, f"{p0}", parse_mode='html')
            else:
                bot.send_message(idtelegram, f"Пары отсутствуют!", parse_mode='html')
            pass

Не бейте(

→ Ссылка