• Модуль datatime после установки на сервер показывает одно и тоже число, как исправить?

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

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    def proc1(b: str) -> str:
        return 'A' + b
    
    def proc2(b: str) -> str:
        return f'A{b}'
    
    dis.dis(proc1)
    
    #  2           0 LOAD_CONST               1 ('A')
    #              2 LOAD_FAST                0 (b)
    #              4 BINARY_ADD
    #              6 RETURN_VALUE
    
    dis.dis(proc2)
    
    # 5           0 LOAD_CONST               1 ('A')
    #              2 LOAD_FAST                0 (b)
    #              4 FORMAT_VALUE             0
    #              6 BUILD_STRING             2
    #              8 RETURN_VALUE


    %timeit proc1('b')
    # 72.7 ns ± 0.688 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)
    %timeit proc2('b')
    # 74.6 ns ± 0.689 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)


    Первый вариант немного выгоднее
    Ответ написан
    Комментировать
  • Как убрать скобки?

    Dr_Elvis
    @Dr_Elvis Куратор тега Python
    В гугле забанен
    Почитать про списки. И про то как выдают данные бд. И ещё основы, чтобы наверняка, Марка Лутца хотя бы.
    Ответ написан
    Комментировать
  • Как запустить shell-комманду в новом процессе без блокировки потока?

    gnifajio
    @gnifajio Автор вопроса
    Совершенствуюсь каждый день
    В данном случае помогло asyncio run_in_executor
    Спасибо Сергей Горностаев и Vindicar, которые посоветовали мне это.
    Я преобразовал код вот так:
    async def call_process(command: str, timeout: int = 5):
        def caller(cmd: str, t_out):
            try:
                proc = Popen(cmd, stdout=PIPE, stderr=PIPE, shell=True)
                stdout, stderr = proc.communicate(timeout=t_out)
                exitcode = proc.returncode
            except TimeoutExpired:
                return f'Command "{cmd}" timed out ({t_out}s)'
            else:
                return f'Exitcode: {exitcode}' + (
                    f'STDERR: {stderr.decode()}'
                    if stderr else f'STDOUT: {stdout.decode()}' if stdout else ''
                    )
    
        loop = asyncio.get_running_loop()
        with concurrent.futures.ThreadPoolExecutor() as pool:
            result = await loop.run_in_executor(
                pool, caller, command, timeout)
        await some_async_func(result)

    Конкретно для моего случая это подходит идеально.
    Ответ написан
    Комментировать
  • Подработка программированием без диплома учебного заведения/сертификата о прохождении курса: возможно ли это?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Реально ли на первое время подрабатывать на небольшие суммы разработчиком какого-либо языка, самообучившись по книгам, видео-курсам и т.д. и создав портфолио с готовыми работами
    Сложно, не невозможно, но очень маловероятно. Чисто логически представьте себе такого работодателя, которому нужен малоопытный недоджун, работающий по пару часов в день. Что ему можно поручить такого, с чем бы опытный не справился за время в 10 раз меньше? Ну и в целом джунов/трейни берут с перспективой вырастить своего недорогого спеца, в вашем случае это со стороны нанимателя просто не перспективно.

    при этом не имея на руках никаких документов о получении специальности/квалификации? Или в любом случае необходим сертификат или СПО/ВПО?
    90% нанимателей чхать хотели на ваши сертификаты или дипломы, если вы умеете в продакшн. Программирование не является сертифицированным видом деятельности (то есть для выполнения работ работник не обязан иметь сертификат, как нарпимер в медицине), и в вашем случае это самое последнее что должно вас волновать.
    Ответ написан
    9 комментариев
  • Подработка программированием без диплома учебного заведения/сертификата о прохождении курса: возможно ли это?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Реально ли на первое время подрабатывать на небольшие суммы разработчиком какого-либо языка, самообучившись по книгам, видео-курсам и т.д. и создав портфолио с готовыми работами, при этом не имея на руках никаких документов о получении специальности/квалификации? Или в любом случае необходим сертификат или СПО/ВПО?


    Какой сертификат?
    Если ты умеешь писать, то можешь и работать. подавляющее большинство разработчиков работают без всяких сертификатов.
    Отсутствие навыка самообучения - это вообще крест на айти карьере.
    Непонятно что такое "первое время". Если ты доучился до уровня, когда можешь пройти интервью на джуна - то все, проходи интервью, устраивайся и работай.
    Документы могут понадобиться только в очень отдельных компаниях, типа госучреждения, где могут потребовать профильное образование. И то требование это исходит из правил госучреждения.
    Ответ написан
    3 комментария
  • С чего начать новичку в python, денег нет на курсы, как быть?

    @AVKor
    С чего начать новичку в python, денег нет на курсы, как быть?

    Как всегда: с чтения учебника. Марк Лутц - традиционный выбор. Есть и другие варианты книг.
    Ответ написан
    Комментировать
  • Возможен ли заработок на фрилансе для разработчика уровня джуниор?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    На отечественном рынке всегда платили немного, и заработать могли только специалисты.
    На зарубежном сейчас из РФ никто не будет брать. В том числе и по причине проблем с оплатой.

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

    @Wolfengo
    Я ещё зелёный, сильно не душите
    Не гонись за всем зайцами сразу, так ни одного не поймаешь, всему своё время, успеешь ещё выучить другие языки
    Ответ написан
    1 комментарий
  • Как осуществить взаимодействие клиента и сервера на основе протокола TCP/IP?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Если у тебя посреди функции main сервера действительно стоит return x | y;, то она не может никогда вызвать send, а программа-сервер должна просто завершаться после расчёта НОД.

    А программа-клиент при этом будет получать ошибку из recv, но поскольку ты её не обрабатываешь, то дальше она будет пытаться выводить ответ из буфера в который не было ничего принято.

    не знаю, как правильно найти НОД в данном случае:

    в данном случае x и y нужно извлечь из принятой из сокета строки, математика дальше в порядке, вместо return x | y нужно просто использовать x | y в itoa. Res и всё что с ним связано можно выкинуть, поскольку оно всё равно никак не используется.

    Но вообще, конечно, из кода видно, что твоя проблема не с НОД и не с сетевым программированием, а с тем, что С/С++ ты, судя по всему, просто не знаешь. Учи основы, не жди халявы.
    Ответ написан
    Комментировать
  • Есть хороший онлайн тренажёр для новичка, для закрепления базы?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Лутц - очень хорошо. И еще сделайте последовательно калькулятор, 2048, тетрис, блокнот, магазин на Django.
    Ответ написан
    Комментировать
  • Есть хороший онлайн тренажёр для новичка, для закрепления базы?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    лучший тренажер - реальная задача
    Ответ написан
    Комментировать
  • Ошибка TypeError: marks_message() missing 1 required positional argument: 'marks' почему?

    Vindicar
    @Vindicar
    RTFM!
    @bot.message_handler(content_types=['text'])
    def marks_message(message, marks):


    marks_message(message, marks)
    Плохая идея. Ты уже решай - или функция является обработчиком события от бота, и тогда её параметры определяются библиотекой, или функция вызывается тобой.
    Ответ написан
    7 комментариев
  • Нужен ли файл подкачки, если у меня 32гб оперативной памяти?

    xez
    @xez
    TL Junior Roo
    Файл подкачки нужен всегда.
    Если памяти будет хватать - он не будет использоваться.
    Ответ написан
    6 комментариев
  • Почему приложение Flask не работает в классе?

    Vindicar
    @Vindicar
    RTFM!
    Чтобы понять, нужно понимать три вещи про питон.
    Во-первых, в нём всё - оператор. Да-да.
    def - это оператор объявления функции.
    class - оператор объявления класса.
    Тебе никто не запрещает сделать
    if condition:
        def foo():
            pass
    else:
        def bar():
            pass


    Во-вторых, все методы класса существуют на уровне класса. Явная передача self на это намекает.
    Иными словами:
    class Foo:
        def bar(self, baz):
            print(self, baz)
    
    foo = Foo()
    # вот этот вызов
    foo.bar('hallo!')
    # полностью эквивалентен вот этому
    Foo.bar(foo, 'hallo!')

    А когда ты обращаешься к foo.bar, Питон конструирует специальный временный объект-обёртку, который ссылается на Foo.bar(), но в то же время подставляет туда первым параметром тот объект foo, к которому произошло обращение. Так что если Foo.bar() принимает два параметра (self и baz), то foo.bar() принимает уже один (baz), так как правильный self будет подставлен этой обёрткой самостоятельно.

    В-третьих, декоратор - это просто синтаксический сахар для вызова функции. Иными словами:
    @app.route('/') 
    def index(self):
        return render_template('index.html')

    будет эквивалентно вот такому коду:
    def index(self):
        return render_template('index.html')
    
    _decorator = app.route('/')
    index = _decorator(index)

    Причем это будет работать одинаково и вне класса, и внутри класса.
    Как это относится к твоему вопросу? А вот как.
    class Web:
        app = Flask(__name__) 
    
        @app.route('/') 
        def index(self):
            return render_template('index.html')

    Последовательность действий тут такова:
    1. Создаётся пространство имён для нового класса, пока что безымянного.
    2. В этом пространстве имён создаётся переменная app, её выражение вычисляется немедленно
    3. В этом пространстве имён создаётся функция index()
    4. Отрабатывает декоратор @app.route(), и регистрирует эту функцию index() как обработчик запроса. Обрати внимание, ни функция index(), ни @app.route понятия не имеют, что index() находится внутри класса! Поэтому app.route не ожидает, что index() будет первым параметром принимать какой-то там self. Как следствие, вместо self функция index() получит то, что передал первым параметром Flask. В данному случае - ничего, так как у тебя роут без параметров.
    5. Ну и в итоге отрабатывает создание класса, с учётом указанных предков (у тебя это неявно указанный object), наполнения пространства имён, и пр. Этот класс потом присваивается переменной Web в вышележащем пространстве имён.

    Ну и как теперь жить?
    А очень просто. Если тебе вот позарезу нужны обработчики роутов в виде методов класса, можно сделать так:
    class Web:
        def __init__(self):
            self.app = Flask(__name__) 
            # получаем обёртку для метода, привязанную к нашему self, см. пункт 2
            self_index = self.index
            # вызываем декоратор вручную, см. пункт 3.
            decorator = self.app.route('/')
            decorator(self_index)
            # ну или то же самое в одну строку:
            self.app.route('/')(self.index)
    
        def index(self):
            return render_template('index.html')

    Разумеется, это не очень удобно. Можно попробовать схитрить, написав свой декоратор, который помечает методы класса ассоциированным роутом, а в конструкторе экземпляра найти все помеченные методы и скормить их фласку одним списком.
    Но я почти уверен, что такой механизм уже кем-то реализован, просто надо поискать... ну или забить на класс, если от него нет выигрыша.
    Ответ написан
    Комментировать
  • Какие бесплатные видеоуроки посоветуете по Java для начинающего?

    @AVKor
    Какие бесплатные видеоуроки(наверное через Youtube) советуете по Java для начинающего?

    Никакие.

    Программированию не научиться по видосам. Там про котиков надо смотреть, а не как программировать.
    Ответ написан
  • Можно ли стать Java Senior разработчиком, если учится полгода-год по 2-3 часа в день?

    @Akela_wolf
    Extreme Programmer
    Одна из моих любимых поговорок: "10000 часов до мастерства".

    Если практиковаться 2 часа в день, 300 дней в год - это 600 часов в год. Соответственно, ~16-17 лет в таком темпе.

    Но, как говорит китайская пословица, путь в тысячу ли начинается с первого шага. В 14 лет 2-3 часа в день на программирование - это неплохой старт. До окончания школы может получиться "набрать" порядка 2500 часов. При должном усердии - это неплохой задел для дальнейшего изучения программирования.

    Еще один совет - английский тоже учите наравне с Java. Программисту в современном мире без него никуда.
    Ответ написан
    3 комментария
  • Каково работать / писать код для гэмблинг сайтов и приложений?

    vabka
    @vabka
    Токсичный шарпист
    Спрашивают заранее от того что много кто морально не готов над подобными продуктами работать.

    Развитие и стабильность - это уже вопрос к конкретной компании. В целом сфера достаточно широкая, и там, где работа идёт легальная - там и бюджет достаточно большой и рисков по сути нет.
    Ответ написан
    Комментировать
  • Почему возникает ошибка "IndentationError: expected an indented block after function definition"?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    while t:
    ^
    IndentationError: expected an indented block after function definition on line 5

    Где-то в районе цикла проблемы с отступом.
    (С учетом того, что функцией форматирования кода вы не воспользовались - где именно ищите сами. В текущем виде угадывать бесполезно)
    Ответ написан
    Комментировать