Ответы пользователя по тегу Python
  • Какие есть open source проекты для джуниоров?

    @traims
    Будет здорово, если кто-нибудь поделится личным опытом. Я же могу подсказать список проектов Google Summer of Code: https://www.google-melange.com/gsoc/org/list/publi...
    Организации можно искать по ключевым словам в колонке справа (например, ввести "python"). На странице каждой организации есть ссылка на "Ideas page", где есть идеи для летних проектов, рассчитанных на студентов. Часто указывается сложность проекта. Скорее всего, эти идеи быстро разберут, но само их наличие может подсказать, в каких проектах способен разобраться и новичок.
    Ответ написан
    2 комментария
  • Как реализовать fronend-backend приложение на C-Python?

    @traims
    Первое, что приходит в голову - модель "Model-View-Controller". В Django она называется "Model-Template-View". Как строятся такие приложения:
    • модель, которая отвечает за работу с данными (в первую очередь, это схема таблиц БД);
    • шаблон (например, HTML-шаблон), который отображает, как именно должен выглядеть вывод данных;
    • контроллер, который отвечает за логику приложения: берёт данные из модели, что-то делает с ними и отображает в шаблоне.
    По этой модели работают многие популярные веб-фреймворки (Ruby on Rails, Django, Zend, ASP.NET MVC...)
    Ответ написан
    Комментировать
  • Как написать parser для txt в словарь с использованием regex pyton?

    @traims
    1. Допустим, мы хотим поймать всё, что находится между символами {## и ##}. Как будет выглядеть регулярное выражение?

    Нам всё равно, какие символы будут встречаться внутри, поэтому можно поставить точку — произвольный символ. Пусть этот символ будет повторяться произвольное число раз — добавляем звёздочку. Нам надо поймать всё, что находится между {## и ##} — добавляем круглые скобки, чтобы обозначить границы группы:
    {## (.*) ##}
    Можно немного изменить это регулярное выражение, например, поставить знак "+" вместо звёздочки — это будет означать, что произвольный символ должен встретиться хотя бы один раз (звёздочка означает, что он может встретиться ноль или более раз).

    2. Как использовать это регулярное выражение?

    Можно применять его к каждой строке файла по очереди. А можно применить ко всему файлу целиком, если он небольшой.

    Допустим, мы считываем весь файл в одну строковую переменную:
    with open('input.txt', 'r') as f:
        text = f.read()

    Тогда мы можем вытащить из него сразу всё, что нас интересует:
    import re
    pattern = "{## (.*) ##}"
    result = re.findall(pattern, text)

    Результатом будет список строк вида
    ['bonus:DS',
    'bang:fm,bv',
    'zf:123,230',
    'zf1:349,410',
    ... ]

    Здесь каждую строку можно разбить на две:
    s = 'bonus:DS'
    s.split(':')  # получаем ['bonus', 'DS']

    — и дальше действовать как потребуется.

    3. Что получится, если включить двоеточие сразу в регулярное выражение?

    Чтобы обойтись без использования split(), можно изначально включить двоеточие в наше регулярное выражение:
    pattern = "{## (.*):(.*) ##}"
    Результатом будет список кортежей:
    [('bonus', 'DS'),
    ('bang', 'fm,bv'),
    ('zf', '123,230'),
    ('zf1', '349,410'),
    ... ]


    4. Как собирать различные структуры данных с нуля?

    Примеры того, как можно собрать с нуля списки, словари и кортежи. Все примеры легко проверить в командной строке.

    Списки:
    list = []
    list.append('a')

    Пары ключ-значение (словари):
    d = dict()
    d['a'] = '123'

    Кортежи:
    x = '123'
    y = '456'
    tuple = (x, y)

    По идее, этой информации должно быть достаточно, чтобы вы смогли разобраться в путях решения задачи. Удачи!
    Ответ написан
    Комментировать