• Простой вопрос по Python [функции]?

    @abcd0x00
    Табулирование функций прямой и параболы
    >>> def f1(x):
    ...     return 2 * x
    ... 
    >>> def f2(x):
    ...     return x * x 
    ... 
    >>> def g(func, start, end, step):
    ...     while start <= end:
    ...         yield start, func(start)
    ...         start += step
    ... 
    >>> list(g(f1, -3, 3, 1))
    [(-3, -6), (-2, -4), (-1, -2), (0, 0), (1, 2), (2, 4), (3, 6)]
    >>> 
    >>> list(g(f2, 0, 10, 1))
    [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25), (6, 36), (7, 49), (8, 64), (9, 81), (10, 100)]
    >>>
    Ответ написан
    Комментировать
  • Почему char занимает 1 байт, а строка с одним символом - 2 байта?

    @abcd0x00
    Нуль-символ обозначает конец строки. То есть строку можно читать, посимвольно смещаясь вправо, пока не встретится конец. Таким образом её длину хранить не нужно.
    А теперь представь строку на миллиард символов. Для такой строки затраты на хранение её длины остаются теми же - один байт в котором записан нуль-символ.
    А вот если бы длина строки хранилась в переменной, то нужно было бы следить за размером этой переменной, потому что на слишком длинных строках числовое значение длины не помещалось бы в переменную.
    Ты думаешь, почему Дельфи такой медленный язык (программа The Bat! работает медленно), потому что там этого нет, из-за чего происходит множество лишних вычислений.
    Ответ написан
  • Администрирование Linux - актуально ли?

    @abcd0x00
    Ты раздели работу и знания. У нас в стране учёные не зарабатывают ничего, хотя знают дофига. Если ты думаешь "вот я научусь и стану зарабатывать", ты глубоко ошибаешься. Зарабатывать будут всё те же, кто и зарабатывал.
    Если свои знания, которые у тебя есть, продать не можешь, то и новые точно так же не продашь.
    На ПФРы, налоговые, суды, вузы и больницы даже не вздумай равняться. Это бюджетные организации, где абсолютно законно на всех экономят, как только могут.
    Почему сайт госуслуг такой беспонтовый и нерабочий?
    Потому что он стоит три копейки, а куплен у того мальчика сынка чьего-нибудь. А разница, выделенная из бюджета на всё это, пошла куда надо (отделочные работы помещений, которые делают свои отделочные фирмы, которые и не отделочные вообще, и вообще не фирмы).
    Вспомни космодром Восточный, куда вбухали такие бабки, а потом оказалось, что рабочим не выплачивали зарплату полгода.

    В общем, остаётся тебе только одно - повышать квалификацию в той области, которую ты уже знаешь. Ты занимался сисадминством, вот и продолжай расти в этом направлении. В удалённом администрировании есть потребность у людей. А если найдёшь своего заказчика, то он станет твоим постоянным заказчиком. Главное, чтобы ты мог сделать всё, мог решить проблему, мог решить задачу, был надёжен и предсказуем.
    Ответ написан
    9 комментариев
  • Стоит ли зацикливаться на непонятной теме?

    @abcd0x00
    Так вот, стоит ли мне зацикливаться сейчас на этом и правда ли то, что если я не пойму этого сейчас, то никогда не пойму?

    Ты поймёшь потом, когда пройдёшь весь материал, необходимый для понимания этого. Есть такие вещи, которые непонятны без промежуточных данных.
    Это как в пятиэтажном доме: чтобы подняться на третий этаж, нужно подняться на второй этаж, а чтобы подняться на второй этаж, нужно подняться на первый этаж.
    Вот ты как бы с площадки между первым и вторым пытаешься подняться на третий и сам этого не понимаешь, потому что тебе кажется, что ты уже на втором.
    Значит, что-то не прошёл, раз не понимаешь.
    Ответ написан
    Комментировать
  • Как составить регулярное выражение python?

    @abcd0x00
    Сначала надо отыскать нужные строки, а потом их разбирать.
    Код
    >>> import re
    >>> 
    >>> text = """
    ... abc
    ... first:
    ... 10, 20, 30, 40, 50
    ... 
    ... def
    ... second:
    ... 600, 700, 800, 900, 1000
    ... 
    ... ghi
    ... """
    >>> 
    >>> list(map(re.compile(r'\d+').findall,
    ...          re.findall(r'(?:\d+(?:, )?)+', text)))
    [['10', '20', '30', '40', '50'], ['600', '700', '800', '900', '1000']]
    >>>

    Ответ написан
    Комментировать
  • Более правильный путь изучения языка программирования. Какой он?

    @abcd0x00
    1) Ведь не достаточно знать один язык?

    Недостаточно.
    Должен быть один язык основной (компилируемый язык). Это нужно, чтобы один раз написать программу, которая будет надёжно работать сто лет без изменений.
    Должен быть один язык дополнительный (скриптовый язык). Это нужно, чтобы быстро писать скрипты по автоматизации рутинных действий (не только мелких, но и комплексных), которые нужно периодически менять под обстановку.
    Их надо знать хорошо оба.

    Остальные языки можно знать настолько, насколько нужно.

    Многие советуют начать с SICP. Так ли это?

    Я бы не советовал. Она довольно слабая, так как сделана для средних (тупых) американцев. Для развития мышления надо изучать саму математику (не школьную, конечно).
    Если ты тупой, эта книжка тебе ничего не даст, а математику ты не освоишь вообще. Если ты умный, эта книжка не даст и малой части того, что нужно знать.

    3) Обязательно ли при изучении программирования нужно чётко представлять про интерпретатор и системы счисления, как внутри всё работает и т.д.?

    Да. Готовься к тому, что это придётся узнавать. Потому что, когда надо будет делать программу, ты должен будешь знать всё к тому времени и времени на изучение неизученного не будет.
    Это как будто ты приезжает во Францию и тебе говорят, чтобы ты ехал в столицу, а ты спрашиваешь "простите, а как называется ваша столица, чтобы я знал куда ехать?", а тебе не говорят. Это нужно было учить в школе, как и остальные 100500 всяких нюансов о мире.
    Ответ написан
    Комментировать
  • Непонятная ситуация с iostream!?

    @abcd0x00
    Попробуй так
    int z(12345);
    std::cout << "Z: " << z << std::endl;
    Ответ написан
  • Какой результат будет?

    @abcd0x00
    Это вычисление в наборе ASCII.
    У каждого символа в наборе есть свой позиционный номер (нумерация с нуля).
    В ASCII символы 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 идут по порядку, поэтому и их числовые коды идут по порядку - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57.
    Какой бы цифровой символ мы не взяли, его значение в числовом виде можно узнать, отняв от его позиции позицию нуля.

    Большинство компиляторов базируются на таблице ASCII, но это нигде не закреплено. Если компилятор будет базироваться на другой таблице, то этот код может не сработать, если в ней цифры стоят не рядом или вообще идут не по порядку.
    Ответ написан
    Комментировать
  • [Большой txt ~1 гб] как обработать?

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

    @abcd0x00
    Можешь заменить начальные пробелы на какую-нибудь последовательность вроде
    <sp>4
    по всему файлу, потом почистить пробелы, а потом восстановить.
    Получится три функции: одна - подготавливает, другая - преобразует, третья - восстанавливает.
    Ответ написан
    Комментировать
  • Как работает функция rand()?

    @abcd0x00
    Не понимаю, что именно генерирует функция rand()

    rand() генерирует одно целое число.

    не понимаю зачем использовать остаток от деления

    Операция взятия остатка от деления используется для установки верхней границы числа.

    Если вычислить 12345 % 7, то результат будет меньше 7.
    Если вычислить 12346 % 7, то результат будет меньше 7.
    Если вычислить 123456789 % 7, то результат будет меньше 7.

    Операция взятия остатка от деления одного числа на другое никакого отношения к функции rand() не имеет.
    Ответ написан
    Комментировать
  • Какой путь для написания конкретной программы наиболее эффективен для новичка?

    @abcd0x00
    Кратко о программе которую я хочу написать. Это база данных собственных ошибок (в разных областях)

    Это описание похоже на excel-файл, не более.

    Qt Creator не полностью автоматизирован, поэтому многие вещи там нужно писать вручную. А чтобы писать вручную, надо разбираться в том, как там всё устроено.
    Ответ написан
    Комментировать
  • Как на английский переводится "инструкция"?

    @abcd0x00
    statement - оператор
    operator - операция (+, -, *, /)
    expression - выражение
    assertion - утверждение
    condition - условие
    instruction - инструкция
    operation - операция (действие)

    while (cond) {
        f1();
        f2(); f3();
    }

    Оператор while с условием cond содержит в своём теле три оператора, каждый из которых является вызовом функции.
    Ответ написан
    Комментировать
  • Что за место в терминале?

    @abcd0x00
    Владимир Жданов:
    Что за команда "`"(гравис) в командной оболочке bash?

    man bash

    Command Substitution
           Command substitution allows the output of a command to replace the com‐
           mand name.  There are two forms:
    
                  $(command)
           or
                  `command`
    
           Bash performs the expansion by executing command and replacing the com‐
           mand substitution with the standard output of  the  command,  with  any
           trailing newlines deleted.
    Ответ написан
    Комментировать
  • Объясните ошибку в простой задаче [Python]?

    @abcd0x00
    >>> def f():
    ...     return sum(int(input()) == 0 for _ in range(int(input())))
    ... 
    >>> print(f())
    5
    0
    2
    0
    2
    0
    3
    >>>
    Ответ написан
    Комментировать
  • Как и как Вы следите за новостями с сфере Ваших интересов и новостями в IT в целом?

    @abcd0x00
    1)
    У меня есть html-файл, который хранит ссылки на каждодневные полезные ресурсы.
    Это типа закладок в браузере, только лучше, потому что ты сам выбираешь внешний вид и оно одинаково выглядит в любом браузере любой версии.
    2)
    На рабочем столе прикреплены виджеты для сбора rss с разных разделов, которые обновляются сами.
    На один сайт с разными разделами нужен один виджет, а виджетов на рабочем столе можно сделать около десяти, а рабочих столов четыре.
    3)
    А для занятий и хранения информации есть множество разных org-файлов.
    Это похоже на гипертекст, когда один упорядоченный файл ссылается на другой упорядоченный файл. Файлы могут ссылаться друг на друга или в интернет или даже на свои собственные позиции в тексте, а ещё могут ссылаться на запуск программы (удобно книги читать в pdf). Внутри можно хранить данные в табличном виде, где таблицы динамически форматируются сами. Поэтому ссылки на программы можно хранить прямо в таблицах, которые сами форматируются.
    Картинка
    53a11eb3b5304fccbaaa39f44f9d633e.png
    Ответ написан
    Комментировать
  • Как запретить доступ к Apache из интернет?

    @abcd0x00
    blockport_except_localhost()
    {
        iptables -A INPUT ! -s localhost -p tcp --dport "$1" -j DROP
        iptables -A INPUT ! -s localhost -p udp --dport "$1" -j DROP
        iptables -A OUTPUT ! -d localhost -p tcp --sport "$1" -j DROP
        iptables -A OUTPUT ! -d localhost -p udp --sport "$1" -j DROP
    }
    
    blockport_except_localhost 80
    Ответ написан
    Комментировать
  • Можно ли в Python во float отбросить k знаков после запятой?

    @abcd0x00
    >>> n = 17.212123445
    >>> n = int(n * 100) / 100
    >>> n
    17.21
    >>>
    Ответ написан
    Комментировать
  • Разница работы с памятью С и С++?

    @abcd0x00
    Почитай про сериализацию. Вот по тому же принципу нужно преобразовать структуру в однозначный поток байт, передать его, а потом преобразовать поток байт обратно в структуру. Так у тебя структуры могут быть устроены по разному, но при этом будут заполнены одинаково.
    Ответ написан
    Комментировать