Задать вопрос
  • Для чего выполнять функцию в assert?

    @rPman
    assert будет вызван только когда сборка проекта в отладочном режиме и будет проигнорирован в релизе, т.е. переменная _debugIsSelecting будет true для режима release и false - для debug, после вызова этого assert
    Ответ написан
    Комментировать
  • Есть ли тайловый оконный менеджер, который работает с мышкой?

    includedlibrary
    @includedlibrary
    i3
    Ответ написан
    Комментировать
  • Есть ли необходимость или очевидные плюсы перехода на linux?

    Adamos
    @Adamos
    Вопрос поставлен однобоко - это не взвешенный выбор, а нытье "мне же и так хорошо, дайте мне оправдание ничего не делать".
    Если развернуть вопрос - есть ли необходимость или очевидные плюсы оставаться на Виндах? - вполне может оказаться, что кроме привычки и "синдрома утенка" никаких аргументов и не найдется.
    При этом знание Линуксов человеку, который работает с серверами, как минимум полезно. А вот знание Виндов в этой же области не дает ничего, кроме плохих привычек...
    Ответ написан
    2 комментария
  • Как понять когда ставить пробел в строках,а когда нет в Питоне?

    Vindicar
    @Vindicar
    RTFM!
    Дополню ответ выше: для print() поведение можно настроить параметром sep. Например:
    print(1, 2, 3)  # 1 2 3
    print(1, 2, 3, sep='')  # 123
    print(1, 2, 3, sep=', ')  # 1, 2, 3

    А еще есть параметр end:
    print(1, 2, 3)  # 1 2 3 с переводом на новую строку
    print(1, 2, 3, end='')  # 1 2 3 без перевода на новую строку
    print(1, 2, 3, end=':')  # 1 2 3: без перевода на новую строку

    Так что строку, выводимую print(*args), можно описать так:
    sep.join(str(arg) for arg in args) + end
    Ответ написан
    1 комментарий
  • Как понять что я готов к ООП?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если спрашиваете, то не готовы.

    В этом вопросе важно понимать, что изучив всего лишь объектный синтаксис, вы столь же готовы писать ООП, сколь готовы профессионально играть в шахматы, изучив как ходят фигуры.
    Главное в ООП - не синтаксис. А взаимодействие объектов. Композиция, наследование, инкапсуляция. Связность, связанность. Это все довольно сложно, и по усилиям, которые требуется затратить на обучение, запредельно отличается от изучения основ процедурного программирования.

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

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Самым правильным будет не округлять, я преобразовывать в строку с нужной точностью.
    f'{54 / 11:.1f}'
    Обычно в вычислениях нужно работать с по возможности наиболее точными числами. но выводить в результате округленные числа без лишних знаков.
    Округление с помощью round для этих целей может сделать "сюрприз". Не все дроби можно представить конечным числом знаков в любой системе счисления. Например, в десятичной системе нельзя представить 1/3, а в троичиной легко, как и в девятиричной. В двоичной системе не получится представить 0.2, а в десятичной вот я только что это сделал. В двоичной системе счисления получится периодическая запись.
    В компе числа с плавающей токой представлены в двоичной форме, и да, некоторые десятичные числа с конечным числом знаков после запятой будут в двоичном виде запиываться не точно. потому что потребуется бесконечное число знаков для точной записи.
    В общем, round испольуем только если по алгоритму нам требуется округленное значение в промежуточных вычислениях. Для округления результата с целью показать человеку нужно использовать округление при приведении к строке.
    Ответ написан
    Комментировать
  • Как преобразовать ошибку потока Rust в строку?

    vabka
    @vabka Куратор тега Rust
    1. У Any есть метод is, с помощью которого можно проверить тип. В твоём случае это &'static str (собственно то, что ты в panic и засунул)
    2. =>
    Err(err) => {
                println!("{}", err.is::<&'static str>());
                let value = err.downcast::<&'static str>().unwrap();
                println!("{}", value); // Выводит строку failed to spawn
            }
    Ответ написан
    Комментировать
  • Какой Линукс подойдет для этого компьютера?

    Adamos
    @Adamos
    Главный вопрос - стоящее ЧЕГО. Запустить на этом Линь с легким DE и офисом получится - будет весьма неторопливо, но многие пользователи сами медленнее даже такой машинки.
    Можно ускорить отзывчивость, поставив современный этому железу дистрибутив и программы, еще не отожравшиеся по памяти.
    Но вы же, подозреваю, захотите интернету? А значит, современный браузер, который сожрет всю эту память прямо при старте и будет постоянно хотеть еще, терзая своп...
    Ответ написан
    2 комментария
  • Как использовать тернарный оператор на групе кода?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Тернарный оператор — чтобы возвращать значение.
    Это не модная замена if .. else

    В вашем примере лучше записать традиционно:
    if (something) {
      console.log(0);
      console.log('something else');
    } else {
      console.log(false);
    }
    Ответ написан
    Комментировать
  • Почему показывает NONE после записи файл, если все операции прошли хорошо?

    @U235U235
    Потому что функция без return возвращает None.
    И вы это None выводите на печать.
    Ответ написан
    1 комментарий
  • Как сделать проверку гипотезы Гольдбаха на Haskell?

    @AlexSku
    не буду отвечать из-за модератора
    Повтор от предыдущего вопроса:

    Тут всё понятно:
    Гипотеза: любое чётное (>2) представимо как сумма двух простых.
    Берём список нечётных (простые всегда нечётные, кроме 2): [ 3, 5 ..]. Это будет первым слагаемым. Если искомое число a, то второе слагаемое a-c (c - первое слагаемое). Ясно, что список первого слагаемого можно ограничить a `div` 2, т.е. получаем [3,5..a `div` 2].
    Дальше фунция map, получая каждый элемент списка (c) формирует пару слагаемых: с - первое, a-c - второе.
    Это мы описали map (\c -> (c, a - c)) [3,5..a `div` 2]
    Напр., для 10 получим список [(3,7), (5,5)].

    Из этого списка надо выкинуть пары, где есть непростые (составные) числа. Напр., для 12 список [(3,9), (5,7)] первая пара выкинется (фильтром), т.к. 9 - составное (делится на 3).
    Если в результирующем списке несколько пар, то func1 просто берёт первую (напр., для 10 будет пара (3,7)). func1 это стандартная функция head.
    Ну и вспомогательные функции: isPr - проверка на простое число, isFactor - на составное.
    Ответ написан
    Комментировать
  • Как работает этот код на хаскеле?

    В общем разобрался:

    func3 означает, что при передаче вторым аргументом 0 - надо всегда возвращать первый аргумент без изменений.
    А при передаче первым аргументом пустого списка - всегда пустой список.
    В остальных случаях -
    Если func1 xs < n (func1 считает длину списка), то вернуть xs, иначе (какая-то сложная штука)

    В func2 при помощи @ мы просто вытаскиваем первый элемент списка в _ (спасибо mikeyuriev за поправку), а хвоста списка - в xs'

    А дальше идёт рекурсивный вызов.
    В результате func2 отбросит n первых элементов списка

    func1 - рекурскивно считает длину списка
    func2 - отбрасывает первые n элементов списка
    func3 - как раз чередует элементы списка.
    А теперь про "сложную штуку"
    n `take` xs ++ [y] ++ func3 (drop n xs) n y
    take берёт первые n элементов списка (тут используется инфиксная форма, по тому и страшно)
    ++ - конкатенирует два списка
    drop - то же самое, что и func2

    Таким образом мы берём n первых элементов списка, приклеиваем разделитель, и повторяем то же самое с оставшимся хвостом, пока список не кончится.

    По этой причине при пустом исходном списке нет и смысла чередовать, как и при нулевом периоде чередования.

    PS: решение красивое и элегантное, мне нравится.
    Ответ написан
    5 комментариев
  • Как работает этот отрезок кода?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.

    Так не работает
    return digits.splice(0,0,1)

    Ну так почитайте что метод splice возвращает. Либо в консоли поупражняйтесь. Само собой не работает.
    Ответ написан
    2 комментария
  • Теоретическая программа. Можно ли находить x в Python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Полагаю, вам может помочь sympy.solvers.
    Ответ написан
    Комментировать
  • Как добавить возможность передавать коду другие файлы и каталоги прямо в командной строке?

    Vindicar
    @Vindicar
    RTFM!
    " Ещё одним возможным улучшением была бы возможность передавать сценарию другие файлы и каталоги прямо в командной строке. Эти имена можно получать из списка sys.argv и добавлять к нашему списку source при помощи метода extend класса list."

    Выделение моё.

    А вообще, sys.argv хранит список параметров командной строки. 0й всегда содержит путь и имя исполняемого скрипта, а вот последующие задаются пользователем.
    В простых случаях можете просто работать с sys.argv как со списком, но если у вас что-то более сложное (типа необязательных аргументов), то смотри в сторону argparse.
    Ответ написан
    Комментировать
  • Как создать опциональный тип данных в python?

    @bqio
    https://bqio.github.io/
    Ответ написан
    Комментировать
  • Как делают такие такие эффекты перехода?

    @cheeroque
    В Nuxt есть встроенные page transitions, дополнительные библиотеки не нужны.
    Ответ написан
    Комментировать
  • Как починить ноут в manjaro?

    @q2digger
    никого не трогаю, починяю примус
    зайдите в текстовую консоль ( CTRL + ALT + F2 ) , и восстановите что вы там снесли из консоли.
    Ответ написан
    6 комментариев
  • Источники информации о Flutter на русском языке?

    Берёте официальную документацию и загоняете в google translate.
    Советую изучить английский хотябы на базовом уровне, чтобы читать документацию.
    Ответ написан
    Комментировать