Size: a a a

2021 November 25

Д🥶

Денис 🐍 (жду резы эк... in Python
Ну, коль уж ты чёт такое творишь, то можно ещё
_module.__dict__['test']('test')
источник

Z

Zundere_000 in Python
Ахахах, мне кажется, когда буду его создавать, то да. Я только учусь
источник

TB

Thomas Brown in Python
Пасиб)
источник

TB

Thomas Brown in Python
С точки зрения логики этот формат более быстрее получается? Он обращается не через функцию, а сразу на список?
источник

Д🥶

Денис 🐍 (жду резы эк... in Python
Тип того, да
источник

jd

jonny dep in Python
подскажите плз, что значит если после типа данных двоеточие?
источник

IN

Ilnur Nuriev in Python
Это аннотация, функция должна возвращать тип float
источник

IN

Ilnur Nuriev in Python
в строку все не поместилось похоже
источник

jd

jonny dep in Python
блин точно, спасибо
источник

VS

Vlad Smit in Python
Ребят, сложная задачка...

Нужно, чтобы код при вводе нужной фразы "спарсить расписание" тригерился и забирал актуальное значение из опред. ячейки таблицы

То есть, воспроизводил команду переменной g1 в первоначальном виде =
sheet.cell(10, 1).value (тобишь поход в таблицу)

Если не ошибаюсь, потом это всё он будет хранить в памяти и спокойно использовать.

До меня не доходит, какая функция мне в этом поможет, вот, что накалаякал, но оно не работает совсем

Либо я не так намудрил с самой функцией main
источник

VS

Vlad Smit in Python
Часть кода, которая должна это всё делать

sheet = client.open('test').sheet1
day1 = sheet.cell(10, 1).value
day2 = sheet.cell(11, 1).value
day22 = day2.split(' ')  # преобразует в массив [3, 4, 5... 30]
day11 = day1.split(' ')
day111 = ([int(x) for x in day11])  # преобразует list в int
day222 = ([int(x) for x in day22])
morning = [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
evening = [17, 18, 19, 20, 21, 22, 23, 24, 00, 1, 2, 3, 4]

def main(message):
   g1 = day111
   g2 = day222
   get_data1 = "1"
   get_data2 = "2"
   get_data3 = "3"
   get_data4 = "4"

   @bot.message_handler(content_types=['text'])
   def tabs():
       if message.text.lower() == "спарсить расписание 3":
           return day111 and bot.send_message(message.chat.id, day1)
       elif message.text.lower() == "спарсить расписание":
           return day222 and bot.send_message(message.chat.id, day2)

   @bot.message_handler(content_types=['text'])
   def tim():
       if datetime.datetime.now().hour in morning and day in g1 and message.text.lower() == "призвать техсап":
           bot.send_message(message.chat.id, get_data1)
       elif datetime.datetime.now().hour in evening and day in g1 and message.text.lower() == "призвать техсап":
           bot.send_message(message.chat.id, get_data2)
       elif message.text.lower() == "/help":
           bot.send_message(message.chat.id,
                            'Если для решения вопроса нужен специалист технической поддержки, напишите: "призвать техсап"')
       elif datetime.datetime.now().hour in morning and day in g2 and message.text.lower() == "призвать техсап":
           bot.send_message(message.chat.id, get_data3)
       elif datetime.datetime.now().hour in evening and day in g2 and message.text.lower() == "призвать техсап":
           bot.send_message(message.chat.id, get_data4)


bot.polling(none_stop=True, interval=0)
источник

VS

Vlad Smit in Python
То есть, в итоге при вводе нужной фразы он будет подтягивать актуальные значения ячейки и потом использовать их
источник

TB

Thomas Brown in Python
Желательно на пастебин бы, не совсем читабельно
источник

VS

Vlad Smit in Python
Ну го файлом приложу - лучш?
источник

TB

Thomas Brown in Python
На сколько мне известно, функция не хранит функции, но декоратор от слова совсем не знаю, могу ошибаться
источник

TB

Thomas Brown in Python
Что то слишком замудрено 😄
Никак не могу понять логику) Почему бы обычной ифовой конструкцией определить значение ввода и далее парс таблицы?
источник

VS

Vlad Smit in Python
Потому что кол-во запросов в гугл таблицы ограничено и бота легко завалить

Я сделаю какую-то секретную фразу, которая будет просто парсить данные ячеек и собсно далее чисто с ними работать, никак не обращаясь к таблице вновь
источник

VS

Vlad Smit in Python
Наверняка можно как-то выкрутить функцию таким образом, но чет я уже в тупике..
источник

TB

Thomas Brown in Python
Так сделай обработчик данных таблицы.
Инициализация даст тебе возможность настроить секретные каналы для обновления базы таблицы.
Функция получения свежих данных.
Функция работы с уже обработанными данными.
Собственно система хранения, будь то словарь, sql или локальная таблица (можно таблицу и без сохранения оставить, работа будет в оперативке)
источник

TB

Thomas Brown in Python
С чем сложность?
источник