Задать вопрос
Профиль пользователя заблокирован сроком с 1 апреля 2025 г. и навсегда по причине: подозрительная активность
  • Какое программное обеспечение должно быть в сети?

    @Drno
    в чем вопрос то? перечислить ПО надо? так то это скорее на ТЗ для заказчика похоже))

    роутер - pfSense
    свитчи - микротик
    Управление юзерами - Ubuntu server + ldap (либо готовый "комбайн" Zentyal)
    на ПК для юзеров - Linux Mint
    Видеонаблюдение - сервер на Zoneminder + POE свитчи (либо платно Hikvision \ Trassir)
    СКУД - IronLogic
    Мониторинг - Zabbix
    Ответ написан
    5 комментариев
  • Как оптимизировать использование Python-ом ОЗУ?

    fenrir1121
    @fenrir1121
    Начни с документации
    Aiogram 3 набирает обороты и хапает себе ОЗУ
    Начните с доказательства этого утверждения.
    Как минимум мой опыт свидетельствует об обратном: десяток запущенных ботов потребляют на сервере один и тот же объем ОЗУ с аптаймом в несколько месяцев.

    Очистка памяти в Python выполняется автоматически путем подсчета ссылок на объекты и сборкой мусора (для циклических ссылок). Есть интерфейс для взаимодействия со сборщиком, но он не будет вам полезен. Запустите бот через профайлер вроде memray и ищите с чем связана проблема.
    Ответ написан
    Комментировать
  • Как сделать рандомное число без повторений при вызове функции?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Странные ответы тут приводят.
    import random
    lst = list(range(1, 5+1))
    random.shuffle(lst)

    Так у вас в списке будет случайно перемешанная последовательность.
    Но у вас есть требование (не знаю насколько оно осозанное), чтобы это была непременно функция.
    Надо понимать, что такая функция не будет чистой. Она должна выдать конечное количество разных значений и её придётся вернуть исключение, если от нее потребуют больше очерендым вызовом. Сделать это можно с помощью генератора.
    def make_shuffled_gen(a, b):
        lst = list(range(a, b + 1))
        random.shuffle(lst)
        yield from lst
    
    shuffled_getter = make_shuffled_gen(1, 5).__next__


    Ну или одним выстрелом:
    def make_shuffled_getter(a, b):
        lst = list(range(a, b + 1))
        random.shuffle(lst)
        return iter(lst).__next__
    
    shuffled_getter = make_shuffled_getter(1, 5)
    Ответ написан
    3 комментария
  • Логика структуры мультиязычного сайта?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    А давйте без "воможно", "наверное" и "я так думаю". Есть четкие правила, которые рекомендуют поисковые системы, и в данном случае программист абсолютно верно вывел все языки в отдельные урл: https://developers.google.com/search/docs/specialt...
    Ответ написан
    3 комментария
  • Почему не работает OWM?

    @vladislavlisitsyn Автор вопроса
    Решение:
    Заменить observation = mgr.weather_at_places(city) на observation = mgr.weather_at_place(city)
    Ответ написан
    Комментировать
  • Как изменить вводимые данные пользователем на звёздочки?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Можно использовать библиотеку keyboard
    import keyboard
    
    secret_symbol = '*' # Символ для замены
    
    def masked_input(prompt):
        print(prompt, end='', flush=True)
        input_str = ''
        
        while True:
            event = keyboard.read_event(suppress=True)
            key = event.name
            
            if event.event_type == 'down':
                if key == 'enter':
                    print()
                    break
                elif key == 'backspace' and len(input_str) > 0:
                    input_str = input_str[:-1]
                    print('\b \b', end='', flush=True)
                elif len(key) == 1:
                    input_str += key
                    print(secret_symbol, end='', flush=True)
        
        return input_str
    
    password = masked_input("Введите пароль: ")
    print(f"Введенный пароль: {password}")
    Ответ написан
    Комментировать
  • При преобразовании текста в кодировку windows-1251 не корректно меняется "Ё". Что делать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для начала, ваша регулярка не обнаруживает буквы Ё и ё, поскольку они находятся в блоках расширения кириллицы, за пределами диапазона А-я. Правильно будет /a-яё/i
    Ну и, возможно, следует учесть, что Ё !== Ё !== Ë.
    Ответ написан
    1 комментарий
  • Как сделать мини консольную игру?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Рисуете на бумажке граф состояний вашей игры.
    Каждый узел этого графа - это вопрос. Из узла выходят стрелочки в другие узлы. Каждая стрелочка - это вариант ответа и реакция на нее игры.
    Так вы опишете граф состояний конечного автомата.
    Теперь этот граф вам нужно оформить для использования в программе.
    Обычно граф описывают с помощью матрицы состояний. Это матрица N*N, где N-это количество состояний игры. Каждая ячейка с координатами (i, j) такой матрицы определяет переход из i-ого в j-ое состояние. Если в ячейке ноль, то перехода нет, а если 1, то есть.
    Обычно в такой матрице нулей гораздо больше чем единиц, поэтому такую матрицу кодируют в виде перечисления всех стрелочек-переходов из исходного в следующее состояние.
    В исходном коде или в файле описываете N состояний, для каждого состояния перечисляете все варианты ответов, для каждого варианта ответа указываете какое состояние будет при его выборе.
    Такую структуру можно описать в виде json или yaml-файла, либо прямо в коде средствми выбранного языка программирования (словарь, или функция с switch-case, или много if-ов).
    Программа будет представлять цикл и переменную со ссылкой на текущее состояние.
    В цикле печатаете вопрос, который соответствует текущему состоянию и варианты ответов на него, запрашиваете ответ у пользователя, в зависимости от ответа присваете в качестве текущего новое состояние.

    Если вам что-то не понятно в этом тексте, то нет смысла задавать дополнительные вопросы, в этом случае вы гарантированно не справитесь с заданием. Следует искать информацию о ненакомых терминах в интернете.
    Удачи.
    Ответ написан
    Комментировать
  • Почему не получается авторизироваться через requests?

    Vindicar
    @Vindicar
    RTFM!
    Потому что надо исходный код целевой страницы почитать, ну и разобраться, как пользоваться инструментами разработчика в браузере, чтобы понять, какие запросы выполняются.
    https://edu.tatar.ru/login - это URL для получения страницы с формой входа. А вот сама форма отправляет данные на URL https://edu.tatar.ru/logon. Именно по этому адресу я бы и делал запрос.
    Ответ написан
    Комментировать
  • Почему тормозит PostgreSQL?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега PostgreSQL
    Седой и строгий
    Почему вы план смотрите не для того запроса, который тормозит? Из очевидного - отсутствие индекса на поле, используемое для сортировки.
    Ответ написан
    3 комментария
  • Как создать свой JSON и получить доступ к значению по ключу?

    @Bright144
    Так в str не возможно получить доступ по ключи.
    Это не правильно:
    import json
    answer = {
            "id": "12",
            "status": "Готов",
            "url": "vk.com"
        }
    answer = json.dumps(answer, ensure_ascii=False).encode('utf-8')     #здесь ты переобразуешь str на bytes
    answer = str(answer.decode('utf-8'))                                #здесь обратно в str
    
    print(type(answer))                                                 #вот тип который ты хочешь получить доступ по ключи

    Вот это правильно:
    import json
    answer = {
            "id": "12",
            "status": "Готов",
            "url": "vk.com"
        }
    answer = json.dumps(answer, ensure_ascii=False)
    answer = json.loads(answer)                         #здесь ты переобразуешь json на данный
    
    print(answer['id'])                                 #получаем данные по ключи
    Ответ написан
    Комментировать
  • Какой pet проект создать, чтобы выделиться?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Pet проект это не тестовый проект для портфолио.
    Пет проект делается для себя, а потом по случаю добавляется в портфолио, а не создается исключительно для того, чтобы положить его в портфолио.

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

    Griboks
    @Griboks
    Создайте pet-проект, который приносит вам доход.
    Ответ написан
    9 комментариев
  • Какой pet проект создать, чтобы выделиться?

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

    Если же говорить про что могло бы быть максимально эффективным - запили что то из области своего будущего работодателя.
    Ответ написан
    Комментировать
  • Как написать выключение компа?

    AmanitaRubescens
    @AmanitaRubescens
    Шалтай-болтай
    #последний принт
    print("Выключаю ПК через 2 минуты")
    os.system("shutdown /s /t 120")
    Ответ написан
    6 комментариев
  • Как работать со словарем древовидной структуры?

    0xD34F
    @0xD34F
    def get_ancestors(data, key):
      result = []
    
      while item := data.get(key):
        result.append(item['name'])
        key = item['parent']
    
      return result
    
    
    print(get_ancestors(data, 4))
    Ответ написан
    Комментировать
  • Как корректно создать шаблон для json-файла?

    Vindicar
    @Vindicar
    RTFM!
    Почитать документацию по модулю json и осознать, что dumps() принимает на вход объект, который надо превратить в JSON-строку. Зачем ты сам что-то колхозишь через f-строку? Подай ему на вход словарь с нужными ключами, и всё.

    JSON объект соответствует питоновому словарю со стороковыми ключами, например:
    print(json.dumps( {'foo': 'bar'} ))
    Ответ написан
  • Как асинхронно отслеживать изменение json?

    Vindicar
    @Vindicar
    RTFM!
    Либо обязать сервер пинать бота при обновлении JSON, либо периодически опрашивать JSON ботом.
    Если сервер отдаёт заголовок Last-Modified, то можно передавать в заголовке If-Modified-Since дату и время предыдущего успешного опроса. Тогда сервер либо ответит 304 Not Modified, либо 200 OK если были изменения.
    Ответ написан
    Комментировать
  • Когда новичку нужно изучать как работает интернет, после изучения базы JS?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Уважаемый пользователь.
    У тебя из 10 вопросов 9 вопросов про то. как стать разработчиком и поменьше учить.
    Прекрати такое поведение.

    Не хочешь учиться - выбери другое направление, кроме ИТ полный мир возможностей.
    Ну или учи свою верстку, работай всю жизнь джуниором, никто тебя за уши в сеньоры не тянет и не заставляет.
    Хочешь - учи, не хочешь - не учи.
    Читай вакансии и требования в вакансиях, зачем тебе советы рандомных людей из интернета, если ты постоянно спрашиваешь почти одно и тоже, хотя тебе уже отвечали.
    Ответ написан
    18 комментариев
  • Когда новичку нужно изучать как работает интернет, после изучения базы JS?

    Стоит ли новичку изучать как работает интернет?

    Стоит.
    Если хочешь быть востребованных и хорошо оплачиваемым специалистом, то изучить это всё придётся, рано или поздно.

    И если нужно изучить, то получается это та самая информация где нужно зазубрить что означает каждый термин?

    Зубрёжка полезна только если ты хочешь зачёт на экзамене получить.

    Если же ты хочешь применять знания на практике - нужно периодически повторять и решать задачи с использованием этих знаний.
    С тем же DNS-ом можешь разобраться, попробовав зарегистрировать новый домен и сделав сайт с его использованием, но без использования всяких конструкторов, которые всё настроят за тебя.
    Ответ написан
    Комментировать