• Можно ли в функции def задать параметр который может и не быть?

    @fireSparrow
    def send(test, tost=None):
        if tost is None:
            # Выполняем какие-то действия если был указан только первый аргумент
        else:
            # Выполняем какие-то действия, если были указаны оба аргумента
    Ответ написан
    2 комментария
  • Использовать ли Python, когда можно обойтись bash?

    @fireSparrow
    Без кода сложно говорить что-то конкретное.

    Есть подозрение, что вы не вставляете в цикл никаких задержек. А ведь для большинства практических задач не нужно проверять что-то каждую наносекунду, можно делать, например, раз в 100 миллисекунд. А для некоторых задач и одна проверка в минуту может быть вполне адекватной частотой.

    Вот этот код у меня грузит процессор на 99-100%

    while True:
        x = range(3)


    А вот с этим процесс python3 я почти вообще не вижу в выводе команды top. Он там появляется всего несколько раз в минуту с какой-то смешной цифрой вроде 0,2 % загрузки процессора.

    import time
    
    while True:
        x = range(3)
        time.sleep(0.1)


    Так что используйте задержки в цикле и будет вам счастье.
    Ответ написан
    Комментировать
  • Что в python может быть неизменяемым и нехэшируемым объектом?

    @fireSparrow
    Для стандартных типов-контейнеров (кортеж, frozenset) хэш вычисляется на основе хэшей его элементов.
    Соответственно, чтобы для контейнера можно было вычислить хэш, мало одного условия неизменяемости самого объекта, нужно чтобы неизменяемыми были и все его элементы.

    Поэтому кортежи (1, 2, 3) и (1, 2, [3]) оба являются неизменяемыми, но хэшируемым - только первый из них.
    Ответ написан
    Комментировать
  • Можно ли написать программу для чтения, обработки и записи данных на Python?

    @fireSparrow
    Возможно вы удивитесь, но большинство программ на практически любом языке программирования выполняет чтение, обработку и запись данных. В том числе и программы на питоне.
    Ответ написан
    Комментировать
  • Что это за язык програмирования и что такое Т?

    @fireSparrow
    Про язык сказать не могу, но это явно что-то строго типизированное и T - это какой-то тип. Питон не является строготипизированным языком, тип в нём не указывается, поэтому вам вообще не обязательно знать, что такое Т, чтобы написать что-то подобное на питоне.

    И структур в питоне нет, ближайший аналог - namedtuple.
    Но я предлагаю делать через обычный класс, а inorderTraversal сделать его методом.
    Ответ написан
    1 комментарий
  • Как отсортировать символы строки в порядке "AaBbCc..." в python?

    @fireSparrow
    Один вариант вам уже подсказали, а я бы сделал иначе, без забивания всего алфавита в код:
    key = lambda c: (c.lower(), c.islower())
    print(''.join(sorted(s, key=key)))
    Ответ написан
    Комментировать
  • Как недопустить того, чтобы последующие значения прогноза были меньше предыдущих?

    @fireSparrow
    С хвалёной библиотекой не работал. Но, скорее всего, в вашем случае имеет смысл прогнозировать не сами значения, а величину прироста.
    Ответ написан
  • Как сделать "AJAX-подобный" сайт на Tornado?

    @fireSparrow
    Всё равно для этого понадобится чтобы страница с клиентской стороны совершала запросы. Т.е. без js не получится.

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

    @fireSparrow
    signs=('.','!','?')
    sign = lambda a: bool(set(a) & set(signs))
    Ответ написан
    Комментировать
  • Какие инструменты, алгоритмы, методы есть для дополнения изображений?

    @fireSparrow
    Такое возможно, если вы обучаете нейросеть на датасете, где присутствуют достаточно похожие объекты.
    Но, насколько я знаю, существующие решения пока работают не совсем чисто - на дорисованном фрагменте будут замыленность, шумы и артефакты.
    Ответ написан
    1 комментарий
  • Как присвоить нескольким классам одинаковое значение переменной внутри?

    @fireSparrow
    Похоже, вы не очень понимаете, как работают классы.

    Если вы создаёте аттрибут self.color - то это аттрибут экземпляра, а не класса. Вы не сможете обратиться к значению этого аттрибута через класс, это значение будет разное для каждого экземпляра.
    Ответ написан
    Комментировать
  • Перебор Элементов списка в Python?

    @fireSparrow
    По вашему вопросу уже ответили, а я хочу сказать, что в современном питоне решать такие задачи явным циклом не рекомендуется, для этого есть списковые включения.

    Благодаря им ту же задачу можно решить гораздо изящнее:
    arr = [1, 2, 3]
    arr = [2*i for i in arr]
    print(arr)


    Так и писать код проще, и тот, кто потом его будет читать сразу понимает, что здесь происходит, и выполняться это будет быстрее.
    Ответ написан
    Комментировать
  • Поиск в многомерном списке по нескольким условиям?

    @fireSparrow
    D = [['Параметр', 'a', 'a', 'a', 'b', 'b', 'b'],
         ['От', '1', '11', '51', '1', '31', '45'],
         ['До', '10', '50', '99', '30', '44', '60'],
         ['00', '01', '02', '03', '04', '05', '06']]
    
    zipped_D = list(zip(*D))[1:]
    
    fltr_1 = lambda lst: lst[0] == 'b'
    fltr_2 = lambda lst: int(lst[1]) <= 40 <= int(lst[2])
    
    result = [
              item[3]
              for item in zipped_D
              if fltr_1(item) and fltr_2(item)
              ]
    
    print("Искомое:", *result)
    Ответ написан
    Комментировать
  • Как в функции сослаться на переменную другой функции?

    @fireSparrow
    В такой форме - никак.
    Переменные, объявленные внутри функции, существуют только для этой функции и только на время её выполнения.

    Соответственно, нужно либо объявление переменных вынести за пределы функции - в какое-то пространство имён, общее для обеих функций. Либо возвращать переменные в качестве результата функции, и вызывать эту функцию, чтобы получить её результат.
    Ответ написан
    1 комментарий
  • Насколько важно ООП в Python?

    @fireSparrow
    ООП совершенно необходимо, если вы собираетесь писать что-то большее, чем скрипты на 30 строк.

    Учить ООП через мобильное приложение я бы не стал. Я пробовал приложение от SoloLearn по SQL, несколько минут в него повтыкал и удалил. Это баловство, серьёзную тему так изучить нельзя. Неудивительно, что вы ничего не поняли.
    Читайте книги и пишите свой код.

    На самом деле, в ООП нет ничего запредельно сложного. Оно базируется на простых принципах.
    Объект - это способ представить связаный набор данных и методы для работы с этими данными в виде одной смысловой единицы.
    Класс - это просто схема, которая описывает объекты определённого типа. По этой схеме, как по чертежу, компьютер создаёт объекты-экземпляры.
    Ответ написан
    Комментировать
  • Как по очереди с интервалом грузить картинки из папки на компьютере на стену группы VK?

    @fireSparrow
    Запускать скрипт планировщиком, добавив ему запоминание того, какие картинки он уже постил.
    Ответ написан
    Комментировать
  • Можно ли стать системным админом изучая бэкэнд?

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

    Лучше устройтесь работать помошником сисадмина / эникейщиком / сотрудником техподдержки, а в свободное время читайте книги и форумы по профессиональным тема. Они в сети есть. Начните с хабра, например.
    Ответ написан
    6 комментариев
  • Стоит ли иди в программирование, будучи инженером?

    @fireSparrow
    Я вот из техподдержки/администрирования недавно перешёл в программисты (тоже Python).
    Первую работу действительно найти трудновато.
    Но если потратить на поиски 2-3 месяца, то в итоге найдёшь место, где будут смотреть не на прошлый опыт, а на то, что ты знаешь и умеешь сейчас. И тут уж от тебя зависит.
    Сейчас у меня з/п 70 тр (это уже чистыми), после окончания испытательного срока обещают 80. Для первой работы в новой области - имхо, очень даже неплохо.

    Но знания уже должны быть, совсем нулевого человека не возьмёт никто.

    В первую очередь стоит выучить Python, SQL, sqlalchemy, git.
    Очень хорошо, если есть опыт работы с Linux на уровне продвинутого пользователя.
    Ну и мониторьте вакансии на hh по слову Python - посмотрите, что там ещё чаще всего пишут в требованиях. Совсем всё учить не нужно, лучше остановиться на нескольких самых частых пунктах, но их-то освоить нормально.

    Не стесняйтесь отправлять резюме на вакансии, даже если не под все из указанных требований подходите. Я пришёл на работу не зная трёх фреймворков, которые были указаны в требованиях, а уже через несколько дней нормально писал код под них, хоть и не очень быстро, переодически сверяясь с документацией и разбираясь, что откуда берётся.

    В общем, устроиться вполне реально, если вы каждый день занимаетесь самообразованием и готовы, что на поиски может уйти два-три месяца или даже побольше.

    Но это всё верно, если вам действительно нравиться программирование. Только ради зарплаты я бы не рекомендовал идти в эту отрасль - здесь нужно постоянно изучать много нового, даже в нерабочее время. Без интереса просто не получиться это делать.
    Ответ написан
    Комментировать
  • Стоит ли решать задачи на codewars?

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

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

    @fireSparrow
    Глобальные переменные крайне не рекомендуется использовать там, где можно обойтись без них.

    Используйте функции-генераторы. Информацию о них легко нагуглить, поискав "yield питон".

    Вот пример простого кода, в котором функция запоминает значение счётчика между итерациями:

    def func():
        counter = 0
        while True:
          for elem in range(3):
              # do something
              counter += 1
          yield counter
    
    current_func = func()        
    for i in range(5):
      print(next(current_func))
    Ответ написан
    Комментировать