• Пишу телеграм бота на пайтон и вылезает ошибка KeyError: 'recipes'. Как решить?

    @Everything_is_bad
    сначала учим основы python, только потом пишем ботов
    Ответ написан
    Комментировать
  • Как исправить мой код 1С: Предприятие нахождение максимального элемента в табличной части чтоб он не выдавал ошибку?

    Mikhail_E
    @Mikhail_E
    1С, SQL
    Ужас какой.
    Если по вашему коду тогда так :
    Выборка=Справочники.Варианты_головных_уборов.Выбрать(); 
    Пока Выборка.Следующий() Цикл
    	Макс2=0;
    		Для каждого а из Выборка.ТабличнаяЧасть1 Цикл
    			Если Макс2>а.Количество_материалов тогда
    				Макс2=а.Количество_материалов;
    			КонецЕсли;        		
    		КонецЦикла; 
    			Сообщить(макс2.Количество_материалов);
    КонецЦикла;

    А вообще это запросом делается конечно.
    Запрос = Новый Запрос("Выбрать Первые 1 
    		|т.Ссылка как ВариантГоловногоУбора,
    		|Максимум(т.Количество_материалов) как МаксимальноеКоличествоМатериалов
    		|Из Справочник.Варианты_головных_уборов.ТабличнаяЧасть1 как т
    		|Сгруппировать по т.Ссылка
    		|Упорядочить по МаксимальноеКоличествоМатериалов Убыв");
    	РезультатВыборка = Запрос.Выполнить().Выбрать();
    	Если РезультатВыборка.Следующий() Тогда
    		Сообщить("Вариант:"+РезультатВыборка.ВариантГоловногоУбора+", Количество материалов:"+РезультатВыборка.МаксимальноеКоличествоМатериалов); 
    	КонецЕсли;
    Ответ написан
    Комментировать
  • Как пофиксить telebot не отправляет сообщение?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Потому что current_time нигде не меняется в цикле, например. Но тут не весь код, причин ещё может быть даже кроме этой миллион. А эта причина точно делает этот код бесполезным полностью.
    Ответ написан
    3 комментария
  • Не могу понять, как использовать переменную за пределами функции main?

    @Everything_is_bad
    как мне использовать переменную alerts_client за пределами функции main?
    определить эту переменную за пределами функции main
    Ответ написан
    Комментировать
  • Как в VSCode отключить это?

    @mezhuev
    Системный администратор
    Просто щёлкните по «don't show» и подсказка не будет появляться. Или откройте параметры (Ctrl+,) и в поиске введите workbench.editor.empty.hint.
    Ответ написан
    3 комментария
  • Почему row[0] обращается к None объекту?

    @Everything_is_bad
    Почему row[0] обращается к None объекту?
    Потому что в row None. А почему в row None? Потому что None вернул sql запрос. Элементарная же логика
    Ответ написан
    5 комментариев
  • Как вывести информацию из списка и кортежа?

    Rimush
    @Rimush
    Ходят легенды о некогда известном, но сейчас уже утраченном знании.
    Имя тому знанию "Циклы":
    ppls = [('user1', 73), ('user2', 43), ('user3', 39), ('user4', 37), ('user5', 27),
            ('user6', 22), ('user7', 11), ('user8', 10), ('user9', 10), ('user10', 9)]
    
    string = 'ТОП 10 ИГРОКОВ:\n'
    for ppl in ppls:
        string += f'{ppl[0]} - {ppl[1]}\n'
    
    print(string)
    Ответ написан
    Комментировать
  • Как поменять for i in range на while?

    Vindicar
    @Vindicar
    RTFM!
    Изменяй. Разрешаю.

    Если серьёзно, то учебные задачи надо решать самостоятельно, иначе какой смысл браться?
    Но тут достаточно понимать, что делает for i in range(x): ...
    Это близкий эквивалент такого кода:
    i = 0
    while i < x:
        ...  # тут тело цикла for
        i += 1

    Ответ написан
    Комментировать
  • Код не работает дальше списка городов, что делать?

    @sttreng
    у вас написан хендлер на обычные кнопки, хендлер на инлайн кнопки выглядит так
    @bot.callback_query_handler(text=['city1'])
    советую сделать универсальный хендлер и обрабатывать колбеки через startswith
    например у вас будут кнопки с колбеками city_1, city_2 и тд.
    будет такой хендлер
    @bot.callback_query_handler(Text(startswith='city_'))

    потом через strip делите колбеку дату и смотрите какой город
    Ответ написан
    3 комментария
  • Как создать свой xml формат?

    Vindicar
    @Vindicar
    RTFM!
    1. Написать класс-реестр, который по имени тега определяет класс компонента.
    2. Написать базовый класс компонента, который умеет читать своё XML описание, выделять из него прописанные атрибуты (типа цвета, текста и т.д.), а также находить и создавать вложенные компоненты, если они есть. Для определения, какой класс нужно использовать для создания компонента, и нужен реестр.
    3. Отнаследовать от базового класса классы для поддерживаемых тобой компонентов. Они должны брать свои атрибуты (которые выделил базовый класс), а потом создавать и настраивать соответствующий элемент управления. Также они должны предоставлять способ подписаться на события, на которые ты хочешь реагировать, типа изменения поля ввода, клика по кнопке и т.д. И, разумеется, они должны быть прописаны в реестре компонентов, чтобы их можно было вкладывать друг в друга.

    Работы вагон, а толку будет немного, но для тренировки можно попробовать.
    Ответ написан
    Комментировать
  • Как начать свой путь в области искусственного интеллекта с использованием языка программирования Python?

    Steel_Balls
    @Steel_Balls
    Python тут ни при чём.
    Твой вопрос звучит так: "Как построить дом с использованием молотка?"
    "Как стать хирургом с использованием скальпеля?"
    Ответ написан
    Комментировать
  • Как начать свой путь в области искусственного интеллекта с использованием языка программирования Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Математика.
    Ответ написан
    Комментировать
  • С чего начать изучение информационной безопасностью и что вообще делает инфобес?

    @Everything_is_bad
    Надо сначала определить, что именно ты хочешь-то или какая именно задача была кем-то поставлена, откуда-то же внезапно появилась хотелка и какие-то сроки.

    Мечта: буду искать уязвимости
    Реальность: в очередной раз никому не нужные отчеты в docx и xlsx.
    Ответ написан
    5 комментариев
  • Как в телеграмм-боте запустить сразу две функции, работающие с API, одновременно?

    febday
    @febday
    Очень странная логика. Но если вы объясните мне её, то я постараюсь понять

    А не работает у вас ничего, потому что поллинг сам по себе и есть запрос к методу getUpdates, вот только при удачном ответе от сервера полинг говорит API, что он прочитал эти апдейты и больше они ему не нужны. Я не могу в любом случае понять вашу логику, она очень странная
    Ответ написан
    1 комментарий
  • Как реогранизовать процесс разработки в IT-продукте?

    1. Git. Без него сейчас ну просто никак.
    2. Gitlab CI или GitHub actions для деплоя.
    3. Пишете скрипт, который при запуске на локалке создаёт новую базу и заполняет её фейковыми данными для тестов. Так новые разработчики не будут иметь доступ к данным.
    3. Новые разработчики будут иметь доступ к коду, смогут создавать свои ветки в Git, пушить эти свои ветки в ваш удаленный репозиторий Git и даже создавать merge request на слияние их ветки с основной веткой разработки. А вы уже сможете сделать ревью их кода и подтвердить слияние, либо отказать. Все права отлично настраиваются как в Gitlab, так и в GitHub.
    4. Если же вы вообще не хотите показывать даже код сторонним разработчикам, то тут без модулей либо даже микросервисов не обойдешься. Я бы начал пробовать с модулей.

    P. S. Если в голову придёт мысль переписать проект полностью, то десять тысяч раз подумайте перед этим. В моей практике нет ни одного успешного переписывания сложного проекта... Всегда нужны новые срочные фичи, и придется параллельно внедрять эти фичи в старую кодовую базу, одновременно с этим пытаться их внедрить в сырую переписываемую кодовую базу. Это может закончиться ещё более запутанным проектом, чем был оригинал.
    Ответ написан
    Комментировать
  • Как сделать параллельный цикл aiogram?

    @Everything_is_bad
    рассказано было уже 100500 раз, надо открыть доку по asyncio и прочитать её, там ты узнаешь про create_task
    Ответ написан
    Комментировать
  • Как сделать параллельный цикл aiogram?

    Vindicar
    @Vindicar
    RTFM!
    Выносишь цикл проверки в отдельную корутину check_loop(), в main() делаешь
    async def main():
        logging.basicConfig(level=logging.INFO)
        async with ClientSession() as session:  # сессию лучше по сто раз не создавать
            check_task = asyncio.create_task(check_loop(session))  # создай её однажды и передай в check_loop
            try:
                bot = Bot(
                    token='"'
                )
                await dp.start_polling(bot)
            finally:
                check_task.cancel()  # внутри check_loop() сгенерируется прерывание asyncio.CancelledError

    Единственное, придётся в коде/конфиге прописать id чата, куда check_loop() будет отправлять сообщение с результатами.
    Ответ написан
    Комментировать
  • Как получить пользователей вступивших в канал по ссылке?

    @UltraRazrab228 Автор вопроса
    Нашёл, всем спасибо

    async for member in client.get_chat_invite_link_joiners(chat_id=CHAT_NAME, invite_link=invite_link):
            print(member.user.id)
    Ответ написан
    1 комментарий
  • Какой специалист мне нужен?

    newross
    @newross
    Product owner
    Бизнес-аналитик либо продакт.
    Желательно знакомого с вашей предметной областью и аудиторией.
    Чего точно не стоит делать, так это делегировать принятие решений разработчикам. А то получите красивый код, оторванный от бизнеса
    Ответ написан
    Комментировать