Задать вопрос
  • Может ли юзер нести ответственность за просматриваемый контент?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Может ли юзер нести ответственность за просматриваемый контент?
    На практике, как правило нет. Но в теории запросто. Все крупные сервисы отслеживают, что делает пользователь (так называемые "рекомендательные технологии") и при соответствующем запросе от гос. органов могут слить им всю информацию. Самим сервисам естественно пофиг, что вы смотрите и пишите. Поэтому, пока вами не интересуются "там", им вы тоже не интересны. Но инфу они собирают и хранят. В РФ это естественно больше касается отечественных платформ: ВК, Яндекс и что там ещё. Но конечно, надо сильно постараться провиниться, чтобы дошло до ответственности.
    По итогу мой совет таков: смотрите что хотите, но как только речь заходит о политике, больших людях и т. п. будьте осторожны. Особенно на наших платформах.
    Ответ написан
    Комментировать
  • Как сделать чтоб Chrome на андроид не открывал новые вкладки?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Никак
    Ответ написан
    Комментировать
  • Как сделать так, чтобы скрипт добавлял все данные в таблицу?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    что делать?
    Перестать задавать глупые вопросы, понять что никто здесь отладкой заниматься и копаться в таких портянках не будет и дебажить самому
    Ответ написан
    1 комментарий
  • Как вывести полностью строки через \n в python?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Ну если через это г..., то
    x_split = x.split('\n')
    print(x_split[0]) # где 0 - номер нужной вам строки (считая  с 0)
    Если вы ищете по предмету, то можно и такое сварганить
    def extract_specific_lines(text, subject_keyword):
        # Разбиваем строку на отдельные строки
        lines = text.split('\n')
    
        # Начинаем с пустого списка для хранения нужных строк
        selected_lines = []
    
        # Флаг для отслеживания, когда начинается нужный блок строк
        start_collecting = False
    
        # Перебираем все строки
        for line in lines:
            if line.startswith(f"Предмет: {subject_keyword}"):
                start_collecting = True
            if start_collecting:
                selected_lines.append(line)
                # Останавливаем сбор после последней нужной строки
                if line.startswith("Задания и решения:"):
                    break
    
        # Объединяем выбранные строки в одну строку
        result = '\n'.join(selected_lines)
    
        return result
    
    # Ваша исходная строка
    x = """Предмет: Право
    Сроки проведения: 3 декабря 2024 года
    Время начала: 16:00
    Классы участия: 9–11
    Итоги проверки: официальная публикация ожидается 9.12
    Задания и решения: задания и решения
    --------------------
    Предмет: Математика
    Сроки проведения: 4 декабря 2024 года
    Время начала: 16:00
    Классы участия: 7–8
    Итоги проверки: официальная публикация ожидается 12.12
    Задания и решения: задания и решения"""
    
    # Используем функцию для извлечения нужных строк
    subject_keyword = "Математика"
    result = extract_specific_lines(x, subject_keyword)
    
    # Выводим результат
    print(result)


    Но вообще все это бред. По-хорошему надо так:
    blocks = []
    block = {
            "Предмет": subject,
            "Сроки проведения": dates,
            "Время начала": times,
            "Классы участия": grades,
            "Итоги проверки": itog,
            "Задания и решения": results_publication
    }
    blocks.append(block)

    А потом делайте, что хотите. Например вывести всё на экран можно так
    for block in blocks:
        for key, value in block.items():
            print(f"{key}: {value}")
        print("-" * 20)
    Ответ написан
    1 комментарий
  • Как найти работу Unity разработчиком?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Весной 2023 года я устал от Python, т.к. не мог найти ни заказа, ни работы
    Плохо искали
    а ещё обнаружил у себя проблемы с фронтендом.
    И поэтому сбежали на Unity и C#?
    как может выглядеть собеседование на разработчика Unity
    Точно не так, как вы его представляете
    как быть с портфолио
    Я думаю на кликеры в Я.Играх никто смотреть не будет.
    есть ли вообще перспективы у изучения этого движка и языка C#
    Есть, это я вам точно говорю
    день, когда пишу этот вопрос, проходит бездарно.
    Ну это уж вы сами виноваты, саморазвитием можно всегда заниматься
    В такие моменты у меня возникают сомнения в идее работать с Unity дальше. Впрочем, с Python такое тоже бывало
    Ну это вам к психологу надо, а не сюда
    Ответ написан
    Комментировать
  • Как реализовать в Телеграме общий чат для менеджеров?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Вам сюда
    Ответ написан
    Комментировать
  • Почему input() не сохраняет значения в списке?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Как-то у вас все запутано и непонятно, поэтому я просто написал свой вариант решения:
    код
    def process_line(line, limit):
        # Разделяем строку на название товара и цены
        parts = line.split(',')
        name = parts[0]
        prices = list(map(int, parts[1:]))
    
        # Вычисляем среднюю цену
        average_price = sum(prices) / len(prices)
    
        # Возвращаем строку с названием товара и средней ценой, если она превышает порог
        if average_price > limit:
            return f'{name},{average_price:.1f}'
        return None
    
    def main():
        lines = []
        while True:  
            line = input()
            if line == "":
                break
            lines.append(line)
            
    
        # Последняя строка - это порог
        limit = int(lines[-1])
        products = lines[:-1]
    
        results = []
        for product in products:
            result = process_line(product, limit)
            if result:
                results.append(result)
    
        for res in results:
            print(res)
    
    if __name__ == "__main__":
        main()
    Ответ написан
    2 комментария
  • Как перенести Избранное в телеграмм с одного аккаунта на другой?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Переслать на другой акк?
    Ответ написан
  • Почему яндекс добавляет каналу ТГ "РКН: иностранный владелец ресурса нарушает закон РФ"?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    19 августа 2022 года:
    Поисковые системы должны будут маркировать ресурсы Telegram, Tiktok, Zoom, Discord и Pinterest как нарушителей законодательства РФ в связи с неудалением этими IT-компаниями запрещенного контента и невыполнением требований закона о "приземлении", говорится в сообщении Роскомнадзора (РКН).
    Ссылка
    И добрый мой вам совет - забыть про Яндекс. Еще успеете попользоваться, когда рубильник чебурнета врубят. А пока наслаждайтесь гуглем и прочими "иноагентами"
    Ответ написан
    2 комментария
  • Читалка электронных книг для чтения одной книги со смартфона и с ПК существует?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Немного поздновато, но мало ли кому понадобится: AlReaderXPro. Малоизвестная, но шикарная программа. Синхронизацию можно настроить через их собственный сервер, WebDav или FTP. Ссылка, которую я дал взята с OnyxBoox. Для неё разработчики делают лучше, чем для GooglePlay, поэтому лучше скачивать то, что я дал, а то смысла не будет.
    spoiler
    Не подумайте, что это реклама!
    Ответ написан
    Комментировать
  • Вылетает pygame при нажатии на окно, никак не могу понять, что не так?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    У вас ошибка здесь:
    while y_house < HEIGHT:
        y += 9.8
    Вы меняете y, но y у вас никак не связано с y_house, из-за чего этот цикл получается бесконечным (y_house не меняется и так и остается меньше HEIGHT).

    Поэтому вам надо сделать вот так:
    while y_house < HEIGHT:
        y_house += 9.8

    Так всё работает
    Ответ написан
    2 комментария
  • Python не видит библиотеки ffmpeg что делать?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Установить более старую версию python и arcade. Последние нерелизные версии работают нестабильно, особенно в python 3.12 и выше

    UPD: Попробуйте установить python 3.10 и arcade 2.6.17
    (pip install arcade==2.6.17)
    Ответ написан
    4 комментария
  • Как в aiogram включить remain anonymous?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Если бот в администраторах, то
    можно
    from aiogram import Bot, Dispatcher, types
    from aiogram.types import ChatPermissions
    
    API_TOKEN = 'YOUR_BOT_API_TOKEN'
    
    bot = Bot(token=API_TOKEN)
    dp = Dispatcher(bot)
    
    @dp.message_handler(commands=['start'])
    async def start(message: types.Message):
        chat_member = await bot.get_chat_member(chat_id=message.chat.id, user_id=bot.id)
        if chat_member.status not in ['administrator', 'creator']:
            await message.reply("Бот должен быть администратором группы.")
            return
    
        await bot.promote_chat_member(
            chat_id=message.chat.id,
            user_id=bot.id,
            is_anonymous=True,
            can_manage_chat=True,
            can_delete_messages=True,
            can_manage_video_chats=True,
            can_restrict_members=True,
            can_promote_members=True,
            can_change_info=True,
            can_invite_users=True,
            can_pin_messages=True
        )
    
        await message.reply("Бот теперь администратор и может отправлять сообщения от имени группы.")
    
    if __name__ == '__main__':
        from aiogram import executor
        executor.start_polling(dp, skip_updates=True)
    Ответ написан
    2 комментария
  • Ошибка "cannot pickle '_tkinter.tkapp' object" при использовании Multiprocessing, почему?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Дебильно, но работает
    код
    import time
    import multiprocessing
    from threading import Thread
    from tkinter import *
    from tkinter import ttk
    
    # Функция контроля работы потока расчета
    
    
    def monitor_process(calc_process, window):
        while calc_process.is_alive():
            print("Process is running")
            time.sleep(0.2)
        else:
            window.destroy()
    
    
    # Функция выполнения расчета
    
    
    def perform_calculation(multiplier):
        i = 0
        while i < 10**6:
            i += 1
            result = i * multiplier
            print(result)
    
    
    # Функция открытия окна при расчете
    
    
    def start_calculation(output_label):
        # Функция закрытия окна по нажатию кнопки
        def stop_calculation():
            calc_process.terminate()
            window.destroy()  # Закрытие окна
    
        # Новое вспомогательное окно
        window = Toplevel()
        window.geometry(
            f"{int(main_window_width / 2)}x{int(main_window_height / 2)}+{int(
                screen_width + main_window_width / 4)}+{int(screen_height + main_window_height / 4)}"
        )
    
        stop_button = Button(
            master=window,
            text="Stop",
            cursor="hand2",
            border=4,
            command=stop_calculation,
            activebackground="white",
            activeforeground="black",
            bd=5,
            font=("Times", "12"),
        )
        stop_button.pack(anchor="sw", pady=5, padx=0)
    
        calc_process = multiprocessing.Process(
            target=perform_calculation, args=(2,), daemon=True
        )  # Поток расчета
        monitor_thread = Thread(
            target=monitor_process, args=(calc_process, window), daemon=True
        )  # Поток контроля
        calc_process.start()  # Запуск потока расчета
        monitor_thread.start()  # Запуск потока контроля
    
        window.mainloop()
    
    
    if __name__ == "__main__":
        root = Tk()
        # Размер и положение окна
        main_window_width = 500
        main_window_height = 500
        # Определение разрешения экрана по ширине
        screen_width = root.winfo_screenwidth()
        # Определение разрешения экрана по высоте
        screen_height = root.winfo_screenheight()
        # Определение координат середины экрана по ширине
        screen_width = screen_width // 2 - main_window_width // 2
        # Определение координат середины экрана по высоте
        screen_height = screen_height // 2 - main_window_height // 2
        root.geometry(
            f"{main_window_width}x{main_window_height}+{int(screen_width)
                                                        }+{int(screen_height)}"
        )  # Размер и положение окна
    
        # Надписи
        label_res = Label(master=root, text="Запуск расчета")
        output_label = Label(master=root, text="")
    
        # Кнопка запуска расчета
        start_button = Button(
            master=root,
            text="ПУСК!",
            cursor="hand2",
            border=4,
            command=lambda: start_calculation(output_label),
            activebackground="white",
            activeforeground="black",
            bd=5,
            font=("Times", "12"),
        )
    
        # Размещение виджетов
        label_res.pack(pady=5)
        start_button.pack(anchor="center", pady=50, padx=0)
    
        root.mainloop()
    Ответ написан
  • Как преобразовать проект в EXE файл с сохранением фотографий?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    1. Устанавливаем pyinstaller:
      pip install pyinstaller
    2. Во входной точке вашего приложения добавляете
      try:
          os.chdir(sys._MEIPASS)
      except AttributeError:
          pass
      Ну например
      import os
      import sys
      
      # some code
      
      if __name__ == "__main__":
          try:
              os.chdir(sys._MEIPASS)
          except AttributeError:
              pass


    3. Кидаем фотографии в какую-нибудь папку внутри проекта, например images
    4. В командной строке заходим в папку которая на один уровень выше images. Например, если вы храните фото в project/images зайдите в project
    5. Запускаем
      pyinstaller main.py -F -w -n "Name_of_project" --add-data "images/*;images"

    6. В папке dist будет лежать exe. Запускаем и проверяем
    Ответ написан
    Комментировать
  • Почему теряется соединение с базой данных во flask?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Скорее всего это происходит из-за слишком долгой неактивности. Если вы используете pymysql, то можно попробовать
    import mysql.connector
        
    
    conn = mysql.connector.connect(
        host="localhost",
        user="username",
        password="password",
        database="database_name",
        connection_timeout=86400,    # таймаут подключения в секундах (86400 секунд = 24 часа)
    )

    Также можно попробовать ping, чтобы поддерживать соединение pool_ping_interval=300
    Ответ написан
  • Почему гугл определяет не верную страну через VPN?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    По языку в браузере и часовому поясу
    Ответ написан
    Комментировать
  • Царапины на контактах SSD M2 или что это?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
  • Возможно ли отобразить окно openCV на python в окне WPF c#?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Как вариант, вызывать python-скрипт из c# с помощью PythonNet
    Ответ написан
    Комментировать
  • Как правильно работать с JobQueue в python telegram bot?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Скорее всего это из-за того, что он воспринимает ваше время, как время UTC, а не как время в вашем часовом поясе. Например, если ваше время UTC+3 (московское время), и вы пишите datetime.time(hour=12, minute=50, second=0), то на самом деле это будет 15:50 по МСК. Т. е. для решения этой проблемы, я думаю, нужно или вычитать из времени сколько-то часов (в данном случае 3) или конвертировать местное время в UTC:
    from datetime import datetime 
    import pytz
    
    local = pytz.timezone("Europe/Moscow")
    naive = datetime.strptime("2024-12-4 12:50:00", "%Y-%m-%d %H:%M:%S")
    local_dt = local.localize(naive, is_dst=None)
    utc_dt = local_dt.astimezone(pytz.utc)
    Ответ написан