Задать вопрос
  • Python создание и заполнение двумерного массива

    nivs
    @nivs
    Пример без numpy, вообще без внешних библиотек
    #!/usr/bin/env python3
    a = 3
    b = 5
    r = 0  # Чтобы было, чем заполнять
    mas = []
    for i in range(a):
        mas.append([])
        for j in range(b):
            mas[i].append(r)
            r += 1  # Чтобы заполнялось не одно и тоже
    
    print(mas)
    # [[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]
    Ответ написан
    1 комментарий
  • Какой есть анализатор кода Delphi/Pascal?

    @evgen25rus
    Ответ написан
    Комментировать
  • Какая есть альтернатива Python со статической типизацией?

    ali_aliev
    @ali_aliev
    Разработчик на Django/Python, JavaScript
    Cython разве не подходит? Он может и бинарники создавать. Есть еще вот такая штука https://github.com/JukkaL/mypy В третьем пайтоне есть аннотации legacy.python.org/dev/peps/pep-3107 они появились в результате большого желания Гвидо (если я не ошибаюсь) сделать 3й пайтон статически типизированным языком www.artima.com/weblogs/viewpost.jsp?thread=85551 www.artima.com/weblogs/viewpost.jsp?thread=86641 но сообщество было против. Да и вообще зачем нужна статическая типизация? Что бы усложнять себе жизнь? Пайтон язык со строгой динамической типизацией и этого вполне достаточно.
    Ответ написан
    Комментировать
  • Что означает 16-bit signed integer image с параметром VALID RANGE -100–16000?

    @radioxoma
    Продолжая тему. Я сталкивался, по большей части, с медицинскими изображениями. От обычных фотографий до многомерных объёмных стеков. С ГИС особо не работал, можно начать отсюда.

    То изображение, которое вы представили, является одноканальным. Его ещё могут называть серым (градации серого), полутоновым (grayscale). Каждый канал это просто матрица точек с разными интенсивностями. Вы сами привели пример. Чтобы получить цветное изображение, требуется три канала. См. RGB. Привычные нам фотографии имеют три канала в цветовой схеме RGB, каждый из которых содержит данные в uint8. Четвёртый канал (альфа-канал) добавляется для получения прозрачности, когда изображения накладывается друг на друга. Цветовые пространства и их математическое представление довольно обширная тема, обратитесь к литературе. Можно начать с RGB.

    А теперь то, о чём вы спрашивали.

    uint16 представляет 216 = 65536 (0...65535) возможных значений пиксела изображения. int16 то же самое, только отсчёт идёт не от нуля, а от -32768 до 32767.
    uint8 представляет 28 = 256 (0...255) возможных значений, по аналогии. Для обработки изображений удобнее unsigned int, так как положительные значения естественны: матрица камеры получает свет различной интенсивности (положительные значения) или его отсутствие (ноль). Так устроен АЦП фотоматрицы.

    Получается, что uint16 позволяет хранить больше (чем uint8) данных в одном пикселе (ячейке матрицы). В 65536/256 = 256 раз больше. Возникает вопрос: есть ли у вас данные, требующие такого диапазона? А если есть, то что вы с ними будете делать? Обрабатывать конечно лучше с большей точностью. А вот отображать всё равно придётся в uint8 на канал. Монитор не отобразит все 16 бит, не все форматы изображений такую глубину поддерживают, как поведёт себя браузер не имею понятия.

    Резюме: обрабатывать с максимальной точностью. Картинки для браузера конечного пользователя отдавать в восьмибитном jpg (если не страшны артефакты) или png (если нужна прозрачность или максимальная сохранность данных).
    Ответ написан
    Комментировать
  • Обязательно ли приписывать const, если ставишь суффикс?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Константа - это сам литерал (с суффиксом). А переменной ты присваиваешь (в данном случае - копируешь) значение константы. Это похоже на такую ситуацию:
    const int c = 35;
    int var = c;

    В var находится значение, скопированное из константы. Но мы же можем менять var?

    А что касается самого модификатора const, то его лучше писать везде, где это возможно.
    Ответ написан
    Комментировать
  • Рекурсивное создание папок в Python

    iROOT
    @iROOT Автор вопроса
    Не воспринимает os.makedirs путь с обратными слешами. Нужно заменять их на прямые и отделить имя файла от каталогов. Как это сделать?

    Решил проблему:
    name_files.append(name_file.replace('\\', '/'))
    ...
    for i in range(files):
    	if not os.path.exists(os.path.dirname(name_files[i])):
    		os.makedirs(os.path.dirname(name_files[i]))
    	unpack = open(name_files[i], 'wb')
    ...
    Ответ написан
    Комментировать
  • Как безболезненно уйти с Delphi?

    RusMikle
    @RusMikle
    Программист
    Не советую уходить с Delphi. Сейчас по работе делаю проекты и в XE2 и в VS студии 2012 c#. XE 2 уже достаточно хороша (последующих не пробовал а на дворе уже XE5). Если работа над проектом ведётся не большим количеством персонала то особого смысла уходить на ту же студию (у которой средства коллективной разработки и тестирования более развиты) не вижу. И мне неизвестно ничего такого что можно реализовать на студии в c# чего нельзя сделать в XE2.
    Ответ написан
    Комментировать
  • Внешний SSD vs HDD?

    EugeneOZ
    @EugeneOZ
    В подарок — только SSD. Иначе какой же это подарок.
    Ответ написан
    Комментировать
  • Си в качестве «первого» языка

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Мой совет начинать в таком порядке, свою карьеру программером:

    1) Плаксин.М «Тестирование_и_отладка_программ». Начните ковыряться с существующими программами, за основу можно взять calc.exe или еще что-либо. Умение тестировать дает возможность беспощадной работы со своим собственным кодом за который вы будете в ответе перед своими коллегами. Это очень полезный навык, пусть даже в минимальном объеме но программер должен уметь тестировать!

    2) Язык С среди компьютерных языков сейчас занимает туже роль что и Английский среди человеческих. Зная С вам легче будет понять другие!

    3) Никогда не делайте ничего что лично Вам хоть как-то не интересно. Любой проект, любая задача, любое действие должно быть интересно не только поставившему вам задачу, но и лично Вам!

    4) Алгоритмы, без них никуда! Чем больше вы их знаете и умете применять на практике и давать оценку по сложности, тем лучше!

    5) Паттерны, это имеет смысл когда у вас хоть какой-то опыт программирования. Хотя бы 20 программ напишите, потом поймете сразу что на практике вам встречалось, а что нет. Будете отчетливо понимать чем конкретно тот или иной паттерн может вам помочь.

    6) Будьте прагматичны! Любое действие должно Вас приводить к какой-либо ранее поставленной Вами цели.

    7) Почитайте «Мифический человеко-месяц» Брукса. То что изложено в книге нужно понимать для того чтобы знать какие конкретно задачи следует выполнять, а какие нет! Умение поправить руководителя правильно и корректно, причем аргументировано дает Вам возможность принести больше в программный проект и следовательно даст Вам преимущество перед коллегами.
    Ответ написан
    1 комментарий