• Как учить JavaScript дальше?

    @Pro_Code
    Копать в сторону DOM. Первое что в голову приходит, поискать например на ютубе - Понимание javascript - работа с DOM от Дмитрия Лаврика. Ну или от кого другого. Просто этот товарищ очень доходчиво объясняет.
    Ответ написан
    Комментировать
  • Как обращаться к элементу словаря по индексу?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Ну если использовать последние версии python где словари упорядоченные, и если вконец упороться:
    my_dict = {'a': 11, 'b': 22, 'c': 33}

    >>> my_dict[list(my_dict.keys())[0]]
    11
    >>> my_dict[list(my_dict.keys())[2]]
    33
    >>> my_dict[list(my_dict.keys())[1]]
    22


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

    lexa_lashak
    @lexa_lashak
    Начинающий Python-разработчик
    Словари в Python - неупорядоченные коллекции произвольных объектов с доступом по ключу. Их иногда ещё называют ассоциативными массивами ...
    Ответ написан
    1 комментарий
  • Как улучшать качество кода?

    Lillipup
    @Lillipup
    Allons-y, Алонсо!
    Практикой и code review, теория тут не поможет.
    Ответ написан
    3 комментария
  • Комментарии в коде?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Давайте перестанем путать комментарии в коде и документацию. Если первое предназначено для объяснения как это вообще работает, то второе ставит перед собой цель описания интерфейса взаимодействия, краткие описания с примерами использования и другие вещи, позволяющие, например, автоматически генерировать документацию
    Ответ написан
    Комментировать
  • Насколько надёжный данный шифр?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Классические шифры полагаются на то, что никто не догадывается, как их расшифровать, а подбор вручную может быть не очень простым делом. И то, на самом деле, некоторые из них ломаются очень просто. Например, шифр простой замены ломается частотным анализом, а шифр сдвига - просто перебором разных вариантов сдвига, число которых не превышает длины алфавита.

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

    Основа современной криптографии - вычислительная сложность. Можно даже всё знать об алгоритме шифрования - но за разумное время расшифровать не получится. Но старинные методы шифрования "символ-в-символ" вычислительно очень просты и никак не годятся в современном мире.
    Ответ написан
    8 комментариев
  • Насколько надёжный данный шифр?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Зная сам алгоритм, тип шифруемых данных и частотное распределение алфавита используемых символов в данном типе данных, найти недостающие переменные - это вообще не проблема с текущими вычислительными мощностями.

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А что вам дадут секунды?
    Вот у вас есть две программы, обрабатывающие одни и те же данные и получающие одни и те же результаты по разным алгоритмам. Первая программа делает это за 10 секунд, вторая за 20. Как оценить, насколько вырастет время обработки при увеличении объёма данных в 10 раз?
    Никак, пока мы не знаем сложности алгоритма. Если первый имеет сложность O(n2), а второй - O(n), то время работы первого вырастет в 100 раз и составит 1000 секунд, а второго - всего в 10 раз (200 секунд). То есть, программа, которая была быстрее на малом наборе данных, внезапно становится гораздо медленнее на большом наборе. И определяющим параметром здесь становится именно вычислительная сложность алгоритма.
    Ответ написан
    1 комментарий
  • Как указать боту что нужно уклониться?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Всего 3 шага (но каких!!!):
    1. Распознавание кадра.
    2. Создание нейронки.
    3. Подключение нейронки к авто-вводу (для автоматического управления).
    Ответ написан
    2 комментария
  • Поможете новичку с проектом Эйлера?

    longclaps
    @longclaps
    Гугли "динамическое программирование".
    Тут конкретно: берем матрицу 4x5 такого вида: (20x20 многовато для иллюстрации)
    1 1 1 1 1
    1 . . . .
    1 . . . .
    1 . . . .

    Точки здесь - это те значения, которые будем вычислять.
    Единички - это число способов попасть в соответствующую клетку из верхней левой (её координаты 0,0).
    В клетку 1,1 можно попасть из 0,1 и 1,0 - запишем туда сумму значений из 0,1 и 1,0:
    1 1 1 1 1
    1 2 . . .
    1 . . . .
    1 . . . .
    И так далее.
    Ответ написан
    Комментировать
  • Возможно ли улучшить качество кода?

    longclaps
    @longclaps
    Решение почти рабочее, содержит ошибку, и вправду похоже на Франкенштейна. Давай-ка его разберём:
    Начнем с ошибки:
    припишем справа к той длинной строке вот такую: '0999999999999' (ноль и 12 девяток). Очевидно, этот хвост даст произведением ноль. Но твой алгоритм слажает, и в результате выдаст Finisg_Number равным 282429536481. Исправим это:
    All_Numbers = list('7316717...2963450' + '0999999999999')
    Finisg_Number = 0
    for _ in range(len(All_Numbers) - 13):
        temp = 1
        for Number in All_Numbers[: 13]:
            temp *= int(Number)
        del All_Numbers[0]
        if temp > Finisg_Number:
            Finisg_Number = temp
    print(Finisg_Number)
    Далее пройдёмся по эффективности: хотя задача мелкая и выполняется быстро, почему бы не разобраться, что тормозит? del All_Numbers[0] - это тяжелая операция, при удалении первого элемента листа все остальные копируются на одну позицию левее. А вот del All_Numbers[-1] такого эффекта не вызывает. Попробуем переписать так:
    All_Numbers = list('7316717...2963450')
    Finisg_Number = 0
    for _ in range(len(All_Numbers) - 13):
        temp = 1
        for Number in All_Numbers[-13:]:
            temp *= int(Number)
        del All_Numbers[-1]
        if temp > Finisg_Number:
            Finisg_Number = temp
    print(Finisg_Number)

    Вроде работает. Ну и еще, на каждом шагу выполняется 13 умножений. Немного, а если бы 313? Есть способ обойти и это. Тут я выложу свой код с минимумом комментариев:
    l = list(map(int,
                 '73167176531330624919225119674426574742355349194934969835203'
                 '12774506326239578318016984801869478851843858615607891129494'
                 '95459501737958331952853208805511125406987471585238630507156'
                 '93290963295227443043557668966489504452445231617318564030987'
                 '11121722383113622298934233803081353362766142828064444866452'
                 '38749303589072962904915604407723907138105158593079608667017'
                 '24271218839987979087922749219016997208880937766572733300105'
                 '33678812202354218097512545405947522435258490771167055601360'
                 '48395864467063244157221553975369781797784617406495514929086'
                 '25693219784686224828397224137565705605749026140797296865241'
                 '45351004748216637048440319989000889524345065854122758866688'
                 '11642717147992444292823086346567481391912316282458617866458'
                 '35912456652947654568284891288314260769004224219022671055626'
                 '32111110937054421750694165896040807198403850962455444362981'
                 '23098787992724428490918884580156166097919133875499200524063'
                 '68991256071760605886116467109405077541002256983155200055935'
                 '72972571636269561882670428252483600823257530420752963450'
                 '0999999999999'))
    sliding = 1  # в sliding я буду держать произведение тех чисел из окна, которые больше нуля
    for a in l[:13]:  # это начальное окно, в цикле я буду сдвигать его вправо
        if a:
            sliding *= a
    zerocount = l[:13].count(0)  # тут я буду отслеживать, сколько нулей в текущем окне
    best = 0 if zerocount else sliding  # упс, чуть не потерял начальное окно
    for a, b in zip(l, l[13:]):  # a выходит из окна, b заходит
        if a:
            sliding //= a
        else:
            zerocount -= 1
        if b:
            sliding *= b
        else:
            zerocount += 1
        if not zerocount and best < sliding:
            best = sliding
    print(best)
    ps Поработай над стилем, ссылку на pep8 давали выше.
    Ответ написан
    3 комментария
  • Клиент просит сделать идентичный сайт, браться?

    Zoominger
    @Zoominger
    System Integrator
    Если совести нет, берите.
    Деньги-то не пахнут.
    Я серьёзно. Этика-фигетика, всё фигня, хватайтесь за работу.
    Если б вас мучила совесть, то вы бы не задавали такой вопрос, а просто отказали, так что не надо кочевряжиться и вперёд, зажибать деньгу.
    Ответ написан
    2 комментария
  • Как спец. программы ускоряют процесс игр?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Не совсем понятно, какую проблему вы решаете. То есть с чего вдруг возник такой вопрос. Вы где-то прочитали, что эта утилита ускоряет игру? Или что?

    Если речь про ускоренное прохождение игры, то всё просто. Cheat Engine и подобные утилиты позволяют менять значения переменных в памяти игры. Например, в игре есть деньги у персонажа игрока, и эта цифра хранится где-то в памяти. Мы ее меняем на ту, которую захотим, например 1000000000 - и вауля, у нас в игре миллиард баксов. Дальше мы можем тупо всё купить, т.е. вообще всё, что только продается. И с легкостью достигаем цели игры. Аналогично можно хакнуть здоровье персонажа, сделав его бессмертным и многое другое.

    Иначе нужно пояснить, что подразумевается под ускорением. То есть в каком контексте вы вычитали, что Cheat Engine позволяет "ускорять" игру.
    Ответ написан
    2 комментария
  • Почему данный код работает не правильно?

    @Timosha_Shakal
    Не разбираюсь в питоне, но судя по коду, если число кратно одновременно 3 и 5, вы его суммируете два раза
    Ответ написан
    Комментировать
  • Можно ли программу которая может показывать пользователю уведомление?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Установите pywin32 и используйте этот код.
    UPD. Еще одну нашел, вот. Она вроде-бы для Windows 10, но можете попробовать и её.
    Ответ написан
    Комментировать
  • Книги для новичка(для совсем новичка) Python?

    myjcom
    @myjcom
    Я полный ноль в программировании
    Что посоветуете новичку который только только начал?

    Пишут что эта годная:
    Starting Out with Python, 4th Edition / Начинаем программировать на Python
    инфо
    Год издания: 2019
    Автор: Tony Gaddis / Тони Гэддис
    Издательство: БХВ-Петербург
    ISBN: 978-5-9775-4002-5
    Язык: Русский


    P.S.
    Все что "Для чайников" лучше руками не трогать.

    Дополнительно
    The Python 3 Standard Library by Example / Стандартная библиотека Python 3: справочник с примерами, 2-е издание
    инфо
    од издания: 2019
    Автор: Doug Hellmann / Даг Хеллман
    Издательство: Диалектика
    ISBN: 978-5-6040043-8-8
    Язык: Русский


    Тут больше по алгоритмам (это же все таки Роберт Седжвик)
    Introduction to Programming in Python: An Interdisciplinary Approach / Программирование на языке Python.
    инфо
    Год издания: 2017
    Автор: Robert Sedgewick, Kevin Wayne, Robert Dondero / Роберт Седжвик, Кевин Уэйн, Роберт Дондеро
    Переводчик: Коваленко В.А.
    Издательство: Диалектика
    ISBN: 978-5-9908462-1-0
    Язык: Русский
    Ответ написан
    Комментировать
  • Книги для новичка(для совсем новичка) Python?

    ASPirin61408
    @ASPirin61408
    Программирование на Python ( Марк Лутц )
    Простой Python. Современный стиль программирования ( Любанович Билл )
    Python. Карманный справочник ( Марк Лутц )
    Изучение сложных систем с помощью Python ( Аллен Б. Дауни )
    Приемы объектно-орентированного проектирования. Паттерны проектирования ( Гамма Эрих, Джонсон Р., Хелм Ричард, Влиссидес Джон-Питер )
    Совершенный код. Мастер-класс ( Стив Макконнел )
    Ответ написан
    1 комментарий
  • Рандомный ли рандом в Python?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Нет. Он псевдослучайный. Ну и вот тут еще можете почитать конкретно за модуль random в Python.
    Ответ написан
    Комментировать
  • Возможно ли зашифровать текст используя разными алгоритмами?

    sim3x
    @sim3x
    Большая часть криптостойких алгоритмов имеют нормализацию алфавита, как часть защиты от атаки по частоте

    Почитайте вики по теме - там есть минимальная база
    Ответ написан
    1 комментарий